怎么写出下面这个结果的高效SQL语句?

ttllhh ttllhh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有如下表及其数据记录:

姓名 里程 结果
张三 1 合格
张三 3 合格
张三 2 不合格
张三 1.5 合格
张三 2 不合格


希望输出结果:

姓名 里程合计 合格数 不合格数
张三 7.5 3 2

我目前的sql写法如下,但我认为这种方法太低效,有没高效的方法可实现上面的输出效果??谢谢

select 姓名,里程合计,合格数,不合格数 from(
select 姓名,sum(里程) as 里程合计 from tab group by 姓名) as a
full join
(select 姓名,count(结果) as 合格数 from tab where 结果='合格' group by 姓名) as b on a.姓名=b.姓名
full join
(select 姓名,count(结果) as 不合格数 from tab where 结果='不合格' group by 姓名) as c on a.姓名=c.姓名
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
ttllhh
MS-SQL Server 34,876 成员 254,635 内容