SQL在一个查询中统一COUNT和SUM

前端之家收集整理的这篇文章主要介绍了SQL在一个查询中统一COUNT和SUM前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将两个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

猜你在找的MsSQL相关文章