【发布时间】:2020-10-08 12:57:36
【问题描述】:
我的表格配置文件包含该配置文件的状态,即活动和非活动 请注意,一个 csr_id 有多个非活动状态记录,但肯定只有一个或没有状态为活动的记录
供您参考的表格:-
id | status | csr_id |
---+-----------+---------
1 | inactive | 1
2 | inactive | 1
3 | inactive | 1
4 | inactive | 1
5 | inactive | 2
6 | inactive | 2
7 | inactive | 2
8 | inactive | 2
9 | active | 2
查询参考:-
(select * from profile where csr_id IN (2,1) AND status = 'active')
UNION
(select DISTINCT ON (csr_id) *from profile where csr_id IN (2,1) AND status = 'inactive') order by status
结果:-
id | status | csr_id |
-----+----------+---------------+--------
9 | active | 2
4 | inactive | 1
8 | inactive | 2
预期结果:-
id | status | csr_id |
-----+----------+---------
9 | active | 2
4 | inactive | 1
因为 csr_id 2 处于活动状态,然后忽略 csr_id 2 的非活动条目
有什么办法吗?
【问题讨论】:
-
这个查询背后的逻辑是什么?
标签: sql postgresql select sql-order-by greatest-n-per-group