我正在尝试计算一列中的所有“Y”和“N”,但是将它们分组到另一列。我可以通过WHERE来获取“Y”或“N”:
SELECT TABLE2.GROUP_BY_THIS,COUNT(TABLE1.FLAG)
FROM TABLE1 INNER JOIN
TABLE2 On TABLE1.Primary_Key = TABLE2.Foreign_Key
WHERE TABLE1.FLAG_Required = "Y"
GROUP BY TABLE2.GROUP_BY_THIS
我可以看到整个数据集的“Y”和“N”,而不是使用第一个答案在另一列中分组:SQL - Counting a column twice但我不太清楚如何获得我想要的结果应该看起来像这样:
GROUP_BY_THIS Y COUNT N COUNT
-------------------------------
GROUP1 10 1
GROUP2 10 100
GROUP3 0 10
GROUP4 50 500
GROUP5 1000 0
我是否需要以某种方式进一步分组?
答案 0 :(得分:4)
SELECT TABLE2.GROUP_BY_THIS
, COUNT(CASE WHEN TABLE1.FLAG = 'Y' THEN 1 END)
, COUNT(CASE WHEN TABLE1.FLAG = 'N' THEN 1 END)
FROM TABLE1
JOIN TABLE2
ON TABLE1.Primary_Key = TABLE2.Foreign_Key
GROUP BY
TABLE2.GROUP_BY_THIS