获取SQL Server中列的频率

时间:2014-07-15 20:01:59

标签: sql sql-server select count

我有一个像1,1,2,1这样的值的列,我希望获得1和2的频率,我做了

SELECT count(column)
FROM table
WHERE column = 1;

SELECT count(column)
FROM table
WHERE column = 2;

但是,我可以采用更直接的方式来获取频率吗?

2 个答案:

答案 0 :(得分:18)

使用聚合函数

 Select column, count(*)
 From   table
 Group By column

对于列

中的每个不同值,这将返回包含计数的一行

答案 1 :(得分:2)

每个值一行:

select column 'value', count (column) 'Frequency'
from table
group by column

如果只有2个值,则可以在一行中得到两个结果

select sum(case when column=1 then 1 else 0 end) as '1 Frequency',
        sum(case when column=2 then 1 else 0 end) as '2 Frequency'
from table