mysql - 如何根据相同的列名对行值进行分组
问题描述
我已经在 SQL Fiddle 上创建了架构和查询:SQL Fiddle( http://sqlfiddle.com/#!9/e43a13/1 )
我试图根据紧迫性和学术水平来获取工作类型的价格,我成功地得到了它,但我不知道如何以这种方式格式化它:
| Urgency | Academic Level Name 1 | Academic Level 2 | Academic Level 3 |
-------------------------------------------------------------------------------------------
| 1 hour |Price Of Academic Level 1|Price Of Academic Level 2 | Price Of Academic Level 3|
-------------------------------------------------------------------------------------------
我有作为输出:
解决方案
如果您正在尝试group by urgency
,您可以考虑以下查询。
SELECT
utt.UrgencyTime as `Urgency`
, sum(case when al.AcademicID = 1 then wtd.Price else 0 end) as `Academic Level Name 1`
, sum(case when al.AcademicID = 2 then wtd.Price else 0 end) as `Academic Level Name 2`
, sum(case when al.AcademicID >= 3 then wtd.Price else 0 end) as `Academic Level Name 3`
FROM `WorkTypeData` wtd
JOIN UrgencyTimeTable utt ON utt.UrgencyID = wtd.UrgencyID
JOIN WorkType wt ON wt.WorkTypeID = wtd.WorkTypeID
JOIN AcademicLevel al ON al.AcademicID = wtd.AcademicLevelID
WHERE wt.WorkTypeID = '1'
GROUP BY utt.UrgencyTime
推荐阅读
- c# - 检查对象是否为字典或字典联合类型
- c# - 使用 EF CORE 运行内联 SELECT 语句
- google-apps-script - DriveApp.getFileById 的 Google Apps 脚本 API 授权
- graphql - Prisma2:如何用 Paljs 解决 n+1 问题
- azure - Azure Function : Function AutoScale 时,多次调用函数
- java - 在不同语言的进程之间有效地共享数据
- .net-core - Atlassian 管道 MSB3026 等上的 dotnet 测试错误
- excel - Excel VBA 代码不会在多个工作簿表“后面”运行:更好的方法?
- nvidia - 如何安装最新版rapids,无需指定版本号
- c# - 通过脚本生成自动新 guid 时,为什么新 guid 是一个长 0 位?