gpt4 book ai didi

sql-server - 错误的计数结果

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

我在 sql server 中有 2 个表:
员工(职位、聘用日期)

  • 人(名字,姓氏)
    我需要返回 E.JobTitle、E.HireDate、P.FirstName、P.LastName 以及有多少员工拥有相同的职位。

  • 所以我使用了这个查询:
    SELECT E.JobTitle,
    E.HireDate,
    P.FirstName,
    P.LastName,
    COUNT(E.JobTitle)
    FROM AdventureWorks2019.HumanResources.Employee E
    JOIN AdventureWorks2019.Person.Person P ON E.BusinessEntityID = P.BusinessEntityID
    GROUP BY E.JobTitle,
    E.HireDate,
    P.FirstName,
    P.LastName;
    问题是查询每次计数返回 1,而我希望每行获得具有该职位的员 worker 数的计数。
    我的问题是如何获得正确的计数?

    最佳答案

    As mentioned by @Larnu in the comments ,您的问题是您按 LastName 分组此外,因此您将获得每个 LastName 的计数 1 .
    您需要使用 OVER 的窗口计数,不是与 GROUP BY 的聚合
    不需要额外的连接或分组。

    SELECT E.JobTitle,
    E.HireDate,
    P.FirstName,
    P.LastName,
    COUNT(*) OVER (PARTITION BY E.JobTitle)
    FROM AdventureWorks2019.HumanResources.Employee E
    JOIN AdventureWorks2019.Person.Person P ON E.BusinessEntityID = P.BusinessEntityID;

    关于sql-server - 错误的计数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68441347/

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