我想将两个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
解决方法
SELECT COUNT(X),SUM(CASE WHEN Z = 1 THEN X ELSE 0 END) FROM tbl WHERE X>Y