【发布时间】:2019-03-10 14:28:07
【问题描述】:
我有这张表名为hr_holidays_by_calendar。我只想过滤掉同一员工在同一天有两次休假的行。
表hr_holidays_by_calendar:
我试过的查询:
没办法解决这个问题。
select hol1.employee_id, hol1.leave_date, hol1.no_of_days, hol1.leave_state
from hr_holidays_by_calendar hol1
inner join
(select employee_id, leave_date
from hr_holidays_by_calendar hol1
group by employee_id, leave_date
having count(*)>1)sub
on hol1.employee_id=sub.employee_id and hol1.leave_date=sub.leave_date
where hol1.leave_state != 'refuse'
order by hol1.employee_id, hol1.leave_date
【问题讨论】:
-
如果这些重复行中的天数不同怎么办?
-
where h.leave_state != 'refuse'在外层查询中的作用是什么?您可能需要在内部查询中进行过滤 - 取决于您未公开的要求。 -
请记住,实际的表定义(
CREATE TABLE ...脚本)最有助于阐明您的设置。而且我们更喜欢文本作为 data 而不是屏幕截图。无法从屏幕截图中复制/粘贴...
标签: sql postgresql duplicates postgresql-9.3