SQL - 如何在 where 子句条件中添加计数
SQL - How to add count in where clause condition
我当前查询的信息如下:
| 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记录。
以下将 select 最后一行 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)
我当前查询的信息如下:
| 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记录。
以下将 select 最后一行 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)