SQL:如何使GROUP BY查询也考虑为空字段

Dav*_*.it 1 sql group-by

我必须根据可能是1,2,3,4的"限定符"列将一些数据分组到类别中.问题是"空"不被视为"分组"类别.

这是我的查询:

SELECT m.id, m.name, COUNT (*) 
FROM _gialli_g2bff_distinct AS g 
INNER JOIN flag.qualifier_flags AS m ON g.qualifier = m.id 
GROUP BY m.name, m.id 
ORDER BY m.id;
Run Code Online (Sandbox Code Playgroud)

这是答案:

1 | "NOT_CONTRIBUTES_TO" | 2   
2 | "CONTRIBUTES_TO"     | 411  
3 | "COLOCALIZES_WITH"   | 200   
4 | "NOT"                | 983  

这个答案的问题是它没有考虑具有限定符字段EMPTY的所有元素.以下是我想要的答案:

1 | "NOT_CONTRIBUTES_TO" | 2
2 | "CONTRIBUTES_TO"     | 411
3 | "COLOCALIZES_WITH"   | 200
4 | "NOT"                | 983
5 |                      | 1854

我怎么能修改我的查询?

谢谢

Lar*_*tig 8

你的问题不是出现在GROUP BY级别,而是出现在JOIN中.具有NULL限定符的行不能被JOIN,并且因为您使用的是INNER JOIN,所以它们不属于结果集.

使用LEFT OUTER JOIN查看所有行.

  • 只是扩展Larry的答案`SELECT m.id,m.name,COUNT(*)FROM _gialli_g2bff_distinct AS g LEFT JOIN flag.qualifier_flags AS m ON g.qualifier = m.id GROUP BY m.name,m.id ORDER BY m .ID;` (2认同)