gpt4 book ai didi

sql - 不同记录的计数 - SQL

转载 作者:行者123 更新时间:2023-12-04 14:50:21 25 4
gpt4 key购买 nike

empid   projectId   TaskID
100 500 1
100 501 1
100 502 1
101 500 2
101 500 5
101 500 1
102 400 1
103 300 2
104 300 2
105 300 2

我试图根据项目 id 列出仅在多个项目上工作的员工。
我尝试了 distinct 和 GROUP BY 。但我无法准确理解。

从上表我期待这样的结果
 empid   projectId  
100 500
100 501
100 502

最佳答案

试试这个(修改后的代码)

SELECT DISTINCT EmpId, ProjectId
FROM TableX
WHERE EmpId IN
(
SELECT EmpId
FROM TableX
GROUP BY EmpId
HAVING COUNT (DISTINCT ProjectId) > 1
)

这应该给你
EmpId       ProjectId
----------- -----------
100 500
100 501
100 502

3 row(s)

编辑 在评论中为 OP 附加问题添加的内容

为您提供不同的 ProjectIds 的计数意味着 GROUP BY 将位于 EmpId级别,不需要子查询
SELECT EmpId, Count (Distinct ProjectId) Projects
FROM TableX
GROUP BY EmpId

要为拥有多个项目的所有员工计算项目数,请执行以下操作
SELECT EmpId, Count (Distinct ProjectId) Projects
FROM TableX
GROUP BY EmpId
Having Count (Distinct ProjectId) > 1

关于sql - 不同记录的计数 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com