【问题标题】:SQL - How to add count in where clause conditionSQL - 如何在 where 子句条件中添加计数
【发布时间】:2018-06-29 03:41:29
【问题描述】:

我当前的查询有以下信息:

| 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 记录。

【问题讨论】:

  • 是否有适当的顺序(或日期)来确定最后一行/观察?
  • 很遗憾没有
  • 那么提供的答案将根据提供的样本满足您想要的结果。你真的应该至少考虑一个身份来保持正确的顺序和真正的唯一性

标签: sql sql-server database count where


【解决方案1】:

以下将选择由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)  

【讨论】:

  • @TheLegend28 乐于助人
猜你喜欢
  • 2016-12-16
  • 2012-07-26
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多