如何统计数据库列中所有不同值的出现次数?

62
我有一个Postgre数据库,有10列。第五列叫做column5。数据库里有100行,column5的可能值为c5value1, c5value2, c5value3...c5value29, c5value30。我想要打印出一张表格,显示每个值出现的次数。
所以这个表格会长成这个样子:
Value(of column5)          number of occurrences of the value
     c5value1                              1
     c5value2                              5
     c5value3                              3
     c5value4                              9
     c5value5                              1
     c5value6                              1
        .                                  .
        .                                  .
        .                                  .

有哪个命令可以做到这一点?

2个回答

118

按照你感兴趣的列进行分组,然后使用计数函数来获取每个分组中的行数:

SELECT column5, COUNT(*)
FROM table1
GROUP BY column5

3
我想做同样的事情,但是我想要统计每行中特定值出现的次数,而不是用列。怎么做? - McLan
有没有一种方法可以像您所做的示例那样仅计算一列,但显示所有列? - Kuempsmichi

31

使用 GROUP BY 子句和 COUNT() 聚合函数:

SELECT column5, COUNT(column5) AS Occurences
FROM myTable
GROUP BY column5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接