创建计算表中数据出现次数的列的最佳方法是什么?表格需要按一列分组吗?
我的数据库是 PostgreSQL。
我见过:
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
wherequestion1
的值可以是0、1或2。
我还看到了一个使用的版本count(CASE WHEN question1 = 0 THEN 1)
但是,随着可能值的数量增加,这将变得更加繁琐question1
。有没有一种方便的方法来编写这个查询,可能优化性能?