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

use*_*123 2 sql aggregate-functions

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

letter
-------
A
B
A
A
B
A
B
Run Code Online (Sandbox Code Playgroud)

我能想到这种方式

SELECT count(letter) FROM  test WHERE letter = 'A';
SELECT count(letter) FROM  test WHERE letter = 'B';
Run Code Online (Sandbox Code Playgroud)

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

Geo*_*ton 5

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

SELECT
  letter, 
  COUNT(letter)
FROM test
GROUP BY letter
Run Code Online (Sandbox Code Playgroud)