首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Aggreate函数

问SQL Aggreate函数
EN

Stack Overflow用户
提问于 2013-11-11 19:10:34
回答 3查看 73关注 0票数 1

我有一张表,上面列出了一些案例,并指派了初级和中级技术人员。我想要完成的是将一名技术人员作为初级和二级技术工作的案例数量进行汇总。应该像这样..。

代码语言:javascript
复制
Technician     Primary     Secondary
John             4              3
Stacy            3              1
Michael          5              3

我从表中提取的数据如下:

代码语言:javascript
复制
CaseID, PrimaryTech, SecondaryTech, DOS

过去我用过这样的方法,但现在我的上级也在问次要案件的数量.

代码语言:javascript
复制
SELECT PrimaryTech, COUNT(CaseID) as Total
GROUP BY PrimaryTech

我做了一些研究,但似乎找不到我的问题的答案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-11 19:25:33

您可以将两个子查询与一个完全连接组合在一起,如本SQLFiddle所示。

代码语言:javascript
复制
SELECT Technician = COALESCE(pri.Technician, sec.Technician)
    , PrimaryTech
    , SecondaryTech
FROM 
    (SELECT Technician = PrimaryTech
        , PrimaryTech = COUNT(*)
    FROM Cases
    WHERE PrimaryTech IS NOT NULL
    GROUP BY PrimaryTech) pri
FULL JOIN
    (SELECT Technician = SecondaryTech
        , SecondaryTech = COUNT(*)
    FROM Cases
    WHERE SecondaryTech IS NOT NULL
    GROUP BY SecondaryTech) sec
    ON pri.Technician = sec.Technician
ORDER By Technician;
票数 0
EN

Stack Overflow用户

发布于 2013-11-11 19:15:52

代码语言:javascript
复制
Select Tech, 
       sum(case when IsPrimary = 1 then 1 else 0 end) as PrimaryCount,
       sum(case when IsPrimary = 0 then 1 else 0 end) as SecondaryCount
from
(
  SELECT SecondaryTech as Tech, 0 as IsPrimary
  FROM your_table
  union all
  SELECT PrimaryTech as Tech, 1 as IsPrimary
  FROM your_table
) x
GROUP BY Tech
票数 1
EN

Stack Overflow用户

发布于 2013-11-11 19:35:23

代码语言:javascript
复制
SELECT COALESCE(A.NAME, B.NAME) AS NAME, CASE WHEN A.CASES IS NOT NULL THEN A.CASES ELSE 0 END AS PRIMARY_CASES,
CASE WHEN B.CASES IS NOT NULL THEN B.CASES ELSE 0 END AS SECONDARY_CASES
FROM
(
SELECT COUNT(*) AS CASES, PRIMARYTECH AS NAME FROM YOUR_TABLE
GROUP BY PRIMARYTECH
) AS A
FULL OUTER JOIN
(
SELECT COUNT(*) AS CASES, SECONDARYTECH AS NAME FROM YOUR_TABLE
GROUP BY SECONDARYTECH
) AS B
ON A.NAME = B.NAME
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19913971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档