将数据库中的项目/行计数为由另一列分组的列

时间:2014-01-17 21:01:01

标签: sql count group-by oracle-sqldeveloper pivot-table

我想要做的基本上是:

 select Type, (Count(*) where Date='')as 10/1, (Count(*) where Date='')as 10/2
 from my table
 group by Type

我希望它看起来像是:

 Type   10/1    10/2
 1      5       7
 2      3       1
 3      6       9
 4      1       3
 5      9       8

但是,当我尝试在每个计数列中运行完整选择时,我最终得到

 Type   10/1    10/2
 1      12      15
 2      12      15
 3      12      15
 4      12      15
 5      12      15

任何建议都表示赞赏。我不确定我是否需要运行枢轴,但我不这么认为。此外,在我可以运行任何特定日期之后,我正在考虑尝试将日期放入变量并尝试运行整个日期范围,为其运行的每一天动态生成列。我可能会为此创建一个新问题。

1 个答案:

答案 0 :(得分:2)

试试这个;

SELECT TYPE
      ,SUM(CASE WHEN MyDate = '' THEN 1 ELSE 0 END) AS [10/1]
      ,SUM(CASE WHEN MyDate = '' THEN 1 ELSE 0 END) AS [10/2]
FROM MyTable
GROUP BY TYPE