我想将两个SELECT组合成一个查询,如下例所示:
TABLE tbl
╔════╦════╦════╦═══╗
║ id ║ X ║ Y ║ Z ║
╠════╬════╬════╬═══╣
║ 0 ║ 1 ║ 2 ║ 0 ║
║ 1 ║ 3 ║ 0 ║ 1 ║
║ 2 ║ 5 ║ 6 ║ 1 ║
║ 3 ║ 7 ║ 8 ║ 0 ║
║ 4 ║ 9 ║ 4 ║ 1 ║
║ 5 ║ 11 ║ 10 ║ 0 ║
╚════╩════╩════╩═══╝
SELECT COUNT(X) FROM tbl WHERE X>Y
SELECT SUM(X) FROM tbl WHERE X>Y AND Z=1
第一个SELECT返回3,第二个返回12。 我想在单个查询中组合两个选择以获得结果
╔══════════╦════════╗
║ COUNT(X) ║ SUM(X) ║
╠══════════╬════════╣
║ 3 ║ 12 ║
╚══════════╩════════╝
我正在使用SQLite3
答案 0 :(得分:15)
SELECT
COUNT(X),
SUM(CASE WHEN Z = 1 THEN X ELSE 0 END)
FROM tbl WHERE X>Y