用SQL计数

时间:2013-07-17 14:47:51

标签: sql sql-server-2008

我如何计算特定表中每个不同值的值?我有一个表,列中包含不同的值,但有不同数量的不同值。我想创建一个表,其中一列只列出值,另一列列出每个值的数量。 假设我有一个字母'Letter',其值为A A A A B B C C 我只想制作一个包含'Letter'和'Number'列的表,其中A B C vs 4 2 2

1 个答案:

答案 0 :(得分:4)

SELECT count(letter) occurences,
       letter
FROM table
GROUP BY letter
ORDER BY letter ASC

基本上你正在寻找COUNT()函数。请注意,它是一个聚合函数,您必须在SELECT语句的末尾使用GROUP BY


如果你的信件在两列(比如col1和col2)上,你应该首先将它们合并在一个列中并在之后进行计数,如下所示:

SELECT count(letter) occurences,
       letter
FROM (SELECT col1 letter
      FROM table
      UNION 
      SELECT col2 letter
      FROM table)
GROUP BY letter 
ORDER BY letter;

内部SELECT查询将col2的内容追加到col1,并将结果列重命名为“letter”。外部选择,计算此结果列中每个字母的出现次数。