获取SQL Server中列的频率

use*_*112 4 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;
Run Code Online (Sandbox Code Playgroud)

但是,我能以更直接的方式采用频率吗?

Che*_*ian 20

使用聚合函数

 Select column, count(*)
 From   table
 Group By column
Run Code Online (Sandbox Code Playgroud)

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


Hor*_*iux 5

每个值一行:

select column 'value', count (column) 'Frequency'
from table
group by column
Run Code Online (Sandbox Code Playgroud)

如果只有 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
Run Code Online (Sandbox Code Playgroud)