如何使用SQL计算新增阳性病例较前一日的环比增量
实现SQL语句
最简写法(全数据库兼容,单次表扫描性能最优)
SELECT (COUNT(CASE WHEN test_date = '2021-11-26' AND result = 'positive' THEN 1 END) - COUNT(CASE WHEN test_date = '2021-11-25' AND result = 'positive' THEN 1 END)) AS increment FROM test;
逻辑说明
- 用
CASE WHEN分别筛选出2021-11-25、2021-11-26两天的阳性记录,通过COUNT统计对应日期的阳性总数,COUNT不会统计CASE WHEN不符合条件返回的NULL值,统计结果准确 - 直接用26日阳性数减去25日阳性数,得到的差值就是要求的增量,数值为负时自动满足返回负数的要求
- 测试数据中26日阳性数为1,25日为3,计算结果
1-3=-2完全符合预期输出
内容的提问来源于stack exchange,提问作者VampireC
相关产品推荐
相关产品推荐

