相关疑难解决方法(0)

SQL计数列

创建用于计算表中数据出现次数的列的最佳方法是什么?该表需要按一列分组.

我见过

SELECT
    sum(CASE WHEN question1 = 0 THEN 1 ELSE 0 END) AS ZERO,
    sum(CASE WHEN question1 = 1 THEN 1 ELSE 0 END) AS ONE,
    sum(CASE WHEN question1 = 2 THEN 1 ELSE 0 END) AS TWO,
    category
FROM reviews
    GROUP BY category
Run Code Online (Sandbox Code Playgroud)

其中question1的值可以是0,1或2.

我也看过使用它的一个版本 count(CASE WHEN question1 = 0 THEN 1)

然而,随着question1的可能值的数量增加,这变得更加麻烦.有没有一种方便的方法来编写此查询,可能会优化性能?

PS.我的数据库是PostgreSQL

sql postgresql group-by count aggregate-filter

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

aggregate-filter ×1

count ×1

group-by ×1

postgresql ×1

sql ×1