【发布时间】:2021-09-13 11:15:36
【问题描述】:
我需要根据它们的存在或缺失来相应地计算表格上的值。
通过一个明确的例子,考虑一个有 2 个字段的表:
+-------+---------+
| K | V |
+-------+---------+
| key1 | 10 |
| key1 | 20 |
| key1 | Stefano |
| key1 | 40 |
| key1 | 50 |
| key1 | 60 |
| key1 | Stefano |
| key1 | 80 |
| key1 | 90 |
| key1 | 100 |
| key1 | 110 |
+-------+---------+
| key2 | 11 |
| key2 | 21 |
| key2 | 31 |
| key2 | Stefano |
| key2 | 51 |
| key2 | 61 |
| key2 | 71 |
| key2 | 81 |
| key2 | 91 |
| key2 | 101 |
+-------+---------+
| key3 | 13 |
| key3 | 23 |
| key3 | 33 |
+-------+---------+
如果 K 不存在,我的目标是计数 V = 'Stefano' 的出现次数为 -1:
select count(*) from TableName where K = 'key1' and V = 'Stefano'
> 2
select count(*) from TableName where K = 'key2' and V = 'Stefano'
> 1
select count(*) from TableName where K = 'key3' and V = 'Stefano'
> 0
如何获取值 [ -1 ] 查询缺失的键值?
select count(*) from TableName where K = 'missing_key' and V = 'Stefano'
> -1
【问题讨论】: