首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从两个层面出发

如何从两个层面出发
EN

Stack Overflow用户
提问于 2016-06-28 01:41:16
回答 1查看 913关注 0票数 0

我正在使用Server 2012,并试图根据下面的表从TSQL构建一个支点表,该表是通过连接多个表生成的。

代码语言:javascript
复制
INCIDENT ID | Department | Priority      | Impact 
--------------------------------------------
1           | IT         | Urgent        | High
2           | IT         | Retrospective | Medium   
3           | Marketing  | Normal        | Low
4           | Marketing  | Normal        | High
5           | Marketing  | Normal        | Med
6           | Finance    | Normal        | Med

在此表中,希望它以下列格式显示:

代码语言:javascript
复制
Priority     | Normal              | Urgent              | Retrospective       |
| Department | Low | Medium | High | Low | Medium | High | Low | Medium | High |
--------------------------------------------------------------------------------
| IT         |   1 |      1 |    0 |   1 |      1 |    0 |   1 |      1 |    0 |
| Finance    |   0 |      0 |    1 |   1 |      1 |    0 |   1 |      1 |    0 |
| Marketing  |   0 |      1 |    0 |   1 |      1 |    0 |   1 |      1 |    0 |

我有以下代码,它成功地转到了“优先级”级别。

代码语言:javascript
复制
SELECT *
FROM (
    SELECT 
        COUNT(incident.incident_id) OVER(PARTITION BY serv_dept.serv_dept_n) Total,
        serv_dept.serv_dept_n       Department,
        ImpactName.item_n           Impact,
        PriorityName.item_n         Priority    
    FROM --  ommitted for brevity
    WHERE  -- ommitted for brevity
) AS T

PIVOT (
    COUNT(Priority)
    FOR Priority IN ("Normal", "Urgent", "Retrospective")
) PIV
ORDER BY Department ASC

我如何才能让这个查询在两个层次上(如我粘贴的第二个表)进行枢轴操作?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-28 01:54:43

最简单的方法可能是条件聚合:

代码语言:javascript
复制
select department,
       sum(case when priority = 'Normal' and target = 'Low' then 1 else 0 end) as Normal_low,
       sum(case when priority = 'Normal' and target = 'Med' then 1 else 0 end) as Normal_med,
       sum(case when priority = 'Normal' and target = 'High' then 1 else 0 end) as Normal_high,
       . . .
from t
group by department;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38065782

复制
相关文章

相似问题

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