Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 多次计算同一列,已分组_Sql_Count_Group By - Fatal编程技术网

Sql 多次计算同一列,已分组

Sql 多次计算同一列,已分组,sql,count,group-by,Sql,Count,Group By,我试图计算一列中的所有“Y”和“N”,但将它们按另一列分组。我可以让它只拉“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

我试图计算一列中的所有“Y”和“N”,但将它们按另一列分组。我可以让它只拉“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”,而不是使用第一个答案按另一列进行分组:但我不太确定如何得到我想要的结果,应该有点像这样:

GROUP_BY_THIS  Y COUNT  N COUNT
-------------------------------
GROUP1         10       1
GROUP2         10       100
GROUP3         0        10
GROUP4         50       500
GROUP5         1000     0

我是否需要进一步分组?

它不应该是SUM()而不是COUNT()?@frikozoid在这种情况下,如果未指定任何
其他
,并且true condition的值为1,
COUNT()
SUM()
将产生相同的结果。@Andomar Oh,好的。空值不计算:)+1不应该是SUM()而不是COUNT()?@frikozoid在这种情况下,如果未指定
ELSE
,并且true条件的值为1,
COUNT()
SUM()
将产生相同的结果。@Andomar哦,好的。空值不计算:)+1.
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