我遇到的问题与我打算做的事情不同。 我的数据库中每个员工ID(pmt_id)的雇主ID(eh_id)。
我的查询如下:
SELECT *
FROM employer_history table1
WHERE eh_id =
(
SELECT eh_id
FROM employer_history table2
WHERE table1.eh_id = table2.eh_id
group by table2.eh_id
)
and table1.eh_pmt_id in (131,3725)
我得到的是:
eh_id | eh_pmt_id
123 | 131
124 | 131
125 | 3725
126 | 3725
我期待的是:
eh_id | eh_pmt_id
124 | 131
126 | 3725
我很感激任何帮助,因为我自己无处可以
干杯
答案 0 :(得分:2)
您可以使用分析函数:
SELECT *
FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY peh_pmt_id ORDER BY eh_id DESC) Corr
FROM employer_history
WHERE eh_pmt_id in (131,3725)) t1
WHERE Corr = 1
答案 1 :(得分:1)
SELECT peh_pmt_id, MAX(eh_id)
FROM employer_history
WHERE eh_pmt_id in (131,3725)
GROUP BY peh_pmt_id