sql - Postgresql 查询从一张表中减去
问题描述
我在 Postgresql 中有一个表,但找不到如何构建查询。该表包含列 nr_serii 和 deleteing_time。我试图计算 nr_serii 并用 delete_time 从这个位置减去。我的查询:
select nr_serii , count(nr_serii ) as ilosc,count(deleting_time) as ilosc_delete
from MyTable
group by nr_serii, deleting_time
输出是:
+--------------------+
| "666666";1;1 |
| "456456";1;0 |
| "333333";3;0 |
| "333333";1;1 |
| "111111";1;1 |
| "111111";3;0 |
+--------------------+
包含原始数据的表格部分:
+--------------------------------+
| "666666";"2020-11-20 14:08:13" |
| "456456";"" |
| "333333";"" |
| "333333";"" |
| "333333";"" |
| "333333";"2020-11-20 14:02:23" |
| "111111";"" |
| "111111";"" |
| "111111";"2020-11-20 14:08:04" |
| "111111";"" |
+--------------------------------+
我需要减去列 ilosc 和列 ilosc_delete 示例:
nr_serii:333333 ilosc:3-1=2
预期输出:
+-------------+
| "666666";-1 |
| "456456";1 |
| "333333";2 |
| "111111";2 |
| ... |
+-------------+
我认为这是非常简单的解决方案,但我脑子里一片空白。
解决方案
我明白你现在想要什么了。您想从为空的数字中减去deleting_time
不为空的数字:
select nr_serii,
count(*) filter (where deleting_time is null) - count(deleting_time) as ilosc_delete
from MyTable
group by nr_serii;
这是一个 db<>fiddle。
推荐阅读
- maven - Jenkins MultiBranchPipeline 因 ModelInterpreter.groovy 失败:43:无法解析类 javax.annotation.Nonnull
- c++ - 如何将记忆应用于此递归函数?
- mapbox - Mapbox 错误:layers.postcodes.filter[2]:分支标签必须是唯一的
- ios - 访问 iOS 中的 Document 目录存储和检索数据
- leaflet - 无法访问 Leaflet.Geoman 中的 event.layer
- javascript - google.maps.Geocoder 显示空结果
- magento2 - Magento 2 显示缺货的可配置产品
- python - 如何将向量中最近的元素与元素相关联
- batch-file - 批处理文件 - wmic - 空行
- scala - 是否可以在 Scala List 或 Map 中保留多个 DataFrame 以进行迭代处理