我想结合以下两个查询,以便最终得到三列:RelativePath,field = null/empty string,value with value.我可以单独执行查询,但是我很难将它们组合起来.
SELECT RELATIVEPATH, COUNT(RELATIVEPATH) FROM APP
WHERE (FIELD IS NULL) OR (FIELD = '')
GROUP BY (RELATIVEPATH);
SELECT RELATIVEPATH, COUNT(RELATIVEPATH) FROM APP
WHERE (FIELD IS NOT NULL)
GROUP BY (RELATIVEPATH);
Run Code Online (Sandbox Code Playgroud)
你需要case声明:
SELECT RELATIVEPATH, sum(case when (FIELD IS NULL) OR (FIELD = '') then 1 else 0 end),
sum(case when field is not null then 1 else 0 end)
FROM APP
GROUP BY (RELATIVEPATH);
Run Code Online (Sandbox Code Playgroud)
这假设的意图count(RelativePath)是计算所有行.如果您真的想要计算列的非NULL值,您可以使用:
SELECT RELATIVEPATH, count(case when (FIELD IS NULL) OR (FIELD = '') then RelativePath end),
count(case when field is not null then RelativePath end)
FROM APP
GROUP BY (RELATIVEPATH);
Run Code Online (Sandbox Code Playgroud)