I have to group some data into categories, based on the column “qualifier” that could be 1,2,3,4, or empty.
The problem is that “empty” is not considered into the “group by” categories.
Here’s my query:
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;
Here’s the answer:
1 | "NOT_CONTRIBUTES_TO" | 2 2 | "CONTRIBUTES_TO" | 411 3 | "COLOCALIZES_WITH" | 200 4 | "NOT" | 983
The problem of this answer is that it does not take into account all the elements that have qualifier field EMPTY.
Here’s what I would like to have as answer:
1 | "NOT_CONTRIBUTES_TO" | 2 2 | "CONTRIBUTES_TO" | 411 3 | "COLOCALIZES_WITH" | 200 4 | "NOT" | 983 5 | | 1854
How could I modify my query?
Thanks
Your problem is not occuring at the GROUP BY level, but rather in the JOIN. The rows with a NULL qualifier cannot be JOINed and, because you’re using INNER JOIN, they fall out of the result set.
Use LEFT OUTER JOIN to see all the rows.