在一个查询中,是否可以计算列中每个不同值的出现次数?

时间:2011-07-06 16:38:07

标签: sql aggregate-functions

例如,带有一个列字母的表测试

letter
-------
A
B
A
A
B
A
B

我能想到这样的方式

SELECT count(letter) FROM  test WHERE letter = 'A';
SELECT count(letter) FROM  test WHERE letter = 'B';

但是在上面的查询中,我需要2个select语句,我必须指定要计算的值。是否可以在一个查询中执行此操作而不指定任何值?

2 个答案:

答案 0 :(得分:5)

是的,您可以通过GROUP BY声明,例如

SELECT
  letter, 
  COUNT(letter)
FROM test
GROUP BY letter

答案 1 :(得分:1)

试试这个(未经测试的)

SELECT COUNT(DISTINCT letter) AS LetterCount FROM test GROUP BY letter