有一些选择
SELECT column1,
COUNT(CASE column2 WHEN 'type1' THEN 1 ELSE NULL END) AS Type1Count,
COUNT(CASE column2 WHEN 'type2' THEN 1 ELSE NULL END) AS Type2Count,
COUNT(CASE column2 WHEN 'type3' THEN 1 ELSE NULL END) AS Type3Count
FROM Yourtable
GROUP BY column1
请帮帮我,我如何在select查询中添加column0哪个值对应于column1,有些像
SELECT column0, column1,
COUNT(CASE column2 WHEN 'type1' THEN 1 ELSE NULL END) AS Type1Count,
COUNT(CASE column2 WHEN 'type2' THEN 1 ELSE NULL END) AS Type2Count,
COUNT(CASE column2 WHEN 'type3' THEN 1 ELSE NULL END) AS Type3Count
FROM Yourtable
GROUP BY column1
但我的变体不起作用......
答案 0 :(得分:1)
当您选择某些列的确切值并在其他列上聚合(例如COUNT()
,SUM()
)时,您需要告诉数据库哪个是GROUP BY
子句中的哪个
如果你说:
GROUP BY column0, column1
然后,对于column0
和column1
的每个唯一组合,您将获得额外的一行结果,并在表格中针对该组合的所有行计算COUNT()
个表达式。
如果您只想为column1
的每个不同值创建一行,则需要告诉数据库您感兴趣的column0
值。例如,您可能要求最小值每个column0
的{{1}}代表:
column1
这意味着:
SELECT MIN(column0), column1 ... GROUP BY column1
)
GROUP BY ...
(column1
)... column1
):
SELECT
的最小值column0
的值对于该组中的所有内容都是相同的