首页 > 解决方案 > 如果员工 1 计数 = 员工 2 计数,则打印计数最低的那个

问题描述

我有一个名为雇员的表。它包含 ID、日期、状态、Employee_ID。我想获得行数(计数)的行并打印计数最少的行。如果多个员工得到相同的计数,我想打印计数最小的那个。这是 SQL 服务器。一个员工在表中可能有多行。我想计算这些行。然后我想看看它是否与任何其他员工的计数相匹配。如果是这样,我只想要返回的最小的。

例如,该表包含列 id 和员工 id。表中的行和值是: 第 1 行:ID 1 - 员工 ID 9 第 2 行:ID 1 - 员工 ID 8 第 3 行:ID 2 - 员工 ID 2 第 4 行:ID 3 - 员工 ID 3

我想计算员工编号。ID 1 和 3 都 = 17。 ID 1 小于 3,所以我想打印 3。

我有计数但不确定如何做 if else

select employee_id, count(*)
from employees
Group By employee_ID

知道如何获得最小的打印数量吗?

我试过了,但没有奏效:

select min(mycount)
from (select employee_ID, count(employee_ID) mycount
from Orders 
Group By employee_ID

标签: sqlsql-server

解决方案


SELECT
    Employee_Id,
    MIN(COUNT(*)) [Count]
FROM
    Orders
GROUP BY
    Employee_Id

推荐阅读