为sql中同一列上的不同where子句获取多个列

vnzz0bqm  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(396)

我有一个包含 date (用字符串表示)。我需要两列,比如 countin(2020) 以及 countin(2019) 从同一个日期列,例如日期类似于“2020%”或“2019%”,我希望它们作为单独的列。
我的问题是这样的。

select C.pin_code, count(distinct(C.customer_code)) as 2020 
from table 
group by C.pin_code

我的输出是

对我来说,应该有另一个列旁边的2020年称为2019年,提供相同的数据2020年在2019年。
如果我有强调不足的地方,请在评论中告诉我。

uyto3xhc

uyto3xhc1#

Select
Count(Year(year_col)) as year,
Pin_code
From T
Group_by pin_code
Order by pin_code desc;

如果需要年列中的值,可以使用pivot

fcg9iug3

fcg9iug32#

对我来说,应该有另一个列旁边的2020年称为2019年,提供相同的数据2020年在2019年。
如果您的数据中有日期,则我希望出现如下查询:

select C.pin_code,
       count(distinct case when year(C.date) = 2020 then C.customer_code end) as cnt_2020, 
       count(distinct case when year(C.date) = 2019 then C.customer_code end) as cnt_2019
from C 
group by C.pin_code;

众所周知,日期/时间函数依赖于数据库。但是 year() 是很常见的,所有的数据库都有这个功能。

相关问题