sql - SQL Pivot 行和列
问题描述
用我的小桌子
skill dept startdate starttime
good A 2020-09-01 08:00:00.0000000
good A 2020-09-03 08:50:00.0000000
bad A 2020-09-04 18:00:00.0000000
bad B 2020-09-05 09:53:00.0000000
avg B 2020-09-06 13:00:05.0000000
avg B 2020-09-07 13:50:05.0000000
我的查询
SELECT * FROM
(
SELECT
skill, MIN(starttime) AS MinTime,Max(starttime) AS MaxTime, startdate
FROM
table2
group by starttime, startdate, skill
)t
PIVOT(
COUNT(skill)
FOR skill IN ([Mon], [Tue], [Wed], [Thu], [Fri], [Sat], [Sun])
)
AS pivot_table;
结果
MinTime MaxTime startdate Mon Tue Wed Thu Fri Sat Sun
08:00:00.0000000 08:00:00.0000000 2020-09-01 0 0 0 0 0 0 0
08:50:00.0000000 08:50:00.0000000 2020-09-03 0 0 0 0 0 0 0
09:53:00.0000000 09:53:00.0000000 2020-09-05 0 0 0 0 0 0 0
13:00:05.0000000 13:00:05.0000000 2020-09-06 0 0 0 0 0 0 0
13:50:05.0000000 13:50:05.0000000 2020-09-07 0 0 0 0 0 0 0
18:00:00.0000000 18:00:00.0000000 2020-09-04 0 0 0 0 0 0 0
不确定为什么不按技能领域计算总组数?
希望有人能指出正确的方向。谢谢你。
解决方案
试试这个:
SELECT * FROM
(
SELECT
skill, MIN(starttime) AS MinTime,Max(starttime) AS MaxTime, DATENAME(WEEKDAY, startdate) as startdate
FROM
table_2
group by starttime, startdate, skill
) t
PIVOT(
COUNT(Skill)
FOR startdate IN (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
)
AS pivot_table;
推荐阅读
- maximo - Maximo 船员类型数量从 JOBLABOR 到 WPLABOR
- javascript - 通过 fetch(URL) 从谷歌表中获取数据但被 CORS 策略阻止
- nock - Nock:如何断言请求未发出
- powerbuilder - 在 Powerbuilder Datawindow 中突出显示 find 方法中的行
- tensorflow - 如何在 pytorch(或 tf)中实现 3D sparse_tensor_dense_matmul 操作?
- flutter - 找不到正确的提供者在此主页小部件上方
- javascript - 如何在主视图 ASP.NET CORE MVC 中显示部分视图
- angular - 摩纳哥编辑器以角度动态调整大小
- python - keras 安装失败并出现错误:找不到 /usr/bin/python3 的 Python 环境
- javascript - 我可以在一页上列出隐藏和显示帖子吗?