我当前的查询包含以下信息:
| employee_no | employee_name | employee_dept | company_id |
------------------------------------------------------------
| P101 | John | C1 | comp1 |
| P101 | John | C1 | comp2 |
| P102 | Mary | C2 | comp1 |
这是查询结果的简化版本。目前,我想要的结果如下:
| employee_no | employee_name | employee_dept | company_id |
------------------------------------------------------------
| P101 | John | C1 | comp2 |
| P102 | Mary | C2 | comp1 |
我希望查询检查是否有同一员工的两条记录,查询应该采用 comp2 记录。
最佳答案
以下内容将选择按 company_id desc
排序的最后一行 但是,这将是 alpha 排序,不一定是正确的顺序。因此,如果有身份或生效日期,请使用它而不是 Order By company_id
示例
Select top 1 with ties *
From YourTable
Order By Row_Number() over (Partition By employee_no Order By company_id desc)
关于SQL - 如何在where子句条件中添加计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51093951/