SQL计数按日期返回代码

时间:2016-01-18 13:22:38

标签: sql count pivot

我坚持这个问题:我每天有多少不同类型的返回码。 所以我必须转换这个输入数据:

Date    Code
17JAN2016   200
17JAN2016   200
17JAN2016   200
17JAN2016   210
16JAN2016   230
16JAN2016   230
16JAN2016   230

这样的事情:

        17JAN2016   16JAN2016
200     4           null
210     1           null
230     null        3
240     null        null

我会感激任何想法。

1 个答案:

答案 0 :(得分:0)

GROUP BY。使用CASE表达式进行条件计数:

select code,
       count(case when Date = '17JAN2016' then 1 end) as "17JAN2016",
       count(case when Date = '16JAN2016' then 1 end) as "16JAN2016"
from tablename
group by code

备注:

  1. 可能需要根据dbms产品(和列数据类型)调整日期比较。

  2. date是ANSI SQL中的保留字,因此您可能需要将其分隔为"date"。 (就像以数字开头的列别名。)