gpt4 book ai didi

postgresql - Postgres 为每个匹配条件选择一条记录

转载 作者:行者123 更新时间:2023-12-04 08:29:43 24 4
gpt4 key购买 nike

我在尝试每个匹配条件只获取一条记录时遇到一些问题..
假设我有包含以下列的认证表:
Id、EmployeeId、DepartmentId、CertificationTitle、PassedDate
一名员工可以在此表中拥有不止一条记录,但我只需要为每位员工获取一条记录(基于最新的 PassedDate)

SELECT Id, EmployeeId, CertificationTitle 
FROM certifications c
ORDER BY EmployeeId, PassedDate DESC
从这个选择中,我需要以某种方式只获取每个 EmployeeId 的第一条记录。
有没有人对我如何实现这一点有任何想法,这可能吗?
Id 是表上的主键,因此在每条记录上都是不同的。
我需要保留 Select 查询中指定的所有这些列。
Group By 对我不起作用,或者我做错了......

最佳答案

使用 DISTINCT ON .这正好返回该组的第一个有序记录。您通过 PassedData DESC 正确订购了首先获得最近的记录。群为DISTINCT ON ,自然是EmployeeID :

SELECT DISTINCT ON (EmployeeId),
Id,
EmployeeId,
CertificationTitle
FROM certifications c
ORDER BY EmployeeId, PassedDate DESC

关于postgresql - Postgres 为每个匹配条件选择一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65086071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com