SQL - 如何在where子句条件中添加计数

标签 sql sql-server database count where-clause

我当前的查询包含以下信息:

| 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/

相关文章:

html - 我可以将 HTML 作为 XML 存储在 Sqlite3 数据库中吗?

sql - varchar 列上的标识键 - T-SQL

php - MySQL GROUP BY 计数

mysql - 长查询字符串会影响速度吗?

MySQL 查询速度慢

sql-server - 如何在 SQL Server 2008 中为 SSIS 包运行计划任务?

android - 更新表后的 Ormlite 我不能对所有方法使用查询

sql-server - 对连接管理器 <Excel 连接管理器> 的 AcquireConnection 方法调用失败,错误代码为 0xC0202009

C#:如何导出到 Excel 电子表格?使用 XSLT/LINQ/其他方法?

php - 新行未按升序插入 - MYSQL