我有一个像1,1,2,1这样的值的列,我希望获得1和2的频率,我做了
SELECT count(column)
FROM table
WHERE column = 1;
SELECT count(column)
FROM table
WHERE column = 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