繁体   English   中英

Postgresql 查询从一张表中减去

[英]Postgresql query substract from one table

我在 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

output 是:

+--------------------+
| "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

预期 output:

+-------------+
| "666666";-1 |
| "456456";1  |
| "333333";2  |
| "111111";2  |
| ...         |
+-------------+

我认为这是非常简单的解决方案,但我脑子里一片空白。

我明白你现在想要什么了。 您想从 null 的数字中减去deleting_time时间不是 null 的数字:

select nr_serii,
       count(*) filter (where deleting_time is null) - count(deleting_time) as ilosc_delete
from MyTable 
group by nr_serii;

是一个 db<>fiddle。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM