【问题标题】:SUM() with a COUNT() statement带有 COUNT() 语句的 SUM()
【发布时间】:2021-11-16 14:40:05
【问题描述】:

我想知道是否可以在计数语句之后对特定值求和。 目前我有:

SELECT roles.Name AS Role_Name , COUNT(DISTINCT ur.UserId ) AS RoleCount FROM dbo.AbpUsers as users 
LEFT JOIN resourcing.CompanyorganizationUnitUserRole AS ur on users.Id = ur.UserId
LEFT JOIN dbo.AbpRoles AS roles ON roles.Id = ur.RoleId
GROUP BY roles.Name;

哪些输出:

Role_Name:                    |RoleCount:
TimeTrackingWritingMember     |8277
OrganizationUnitLeader        |529
Member                        |13901
DepartmentalCoordinator       |759
OrganizationUnitSecondLeader  |4
ResourceCoordinator           |6

这个想法是对例如 TimeTrackingWritingMember + Member = "Basic User"

的 roleCount 求和

我似乎不明白如何在一个查询中同时使用两者的逻辑。非常感谢所有帮助

【问题讨论】:

  • 您必须提供样本数据和所需的输出

标签: mysql sql heidisql


【解决方案1】:

您可以选择这两条记录的总和。

  SELECT SUM(A.ROLECOUNT) as 'Basic User'
    FROM(
        SELECT roles.Name AS Role_Name,
        COUNT(DISTINCT ur.UserId ) AS RoleCount 
        FROM dbo.AbpUsers as users 
        LEFT JOIN resourcing.CompanyorganizationUnitUserRole AS ur 
        on users.Id = ur.UserId
        LEFT JOIN dbo.AbpRoles AS roles ON roles.Id = ur.RoleId
        GROUP BY roles.Name;
        ) A 
    WHERE A.ROLE_NAME IN ('TimeTrackingWritingMember', 'Member')

【讨论】:

  • 嘿,谢谢。那么它在哪里说“A”这意味着它需要从中获取它的表?提前致谢
  • 它一直给我一个错误,说“名称”附近有语法错误,但看起来很好
  • 对不起,是分号“;”在嵌套查询中的名称之后。
  • 现在我尝试将另一个放入其中,但它给了我一个问题,即当嵌套它时 SELECT SUM(A.ROLECOUNT) as 'Basic User' , (SELECT SUM(A.ROLECOUNT) as 'Advanced User') 与另一个 WHERE 子句不将列名显示为“高级用户”,而只是 COLUMN1 ...好像它只忽略“AS”语句,任何想法和已经非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 2014-09-16
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
相关资源
最近更新 更多