如何解决JOIN 两个 SELECT 语句结果
SELECT t1.ks, t1.[# Tasks], COALESCE(t2.[# Late], 0) AS [# Late]
FROM
(SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1
LEFT JOIN
(SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2
ON (t1.ks = t2.ks);
解决方法
是否可以在一个语句中加入 2 个 sqlSELECT
语句的结果?我有一个任务数据库,其中每条记录都是一个单独的任务,有截止日期(和 a
PALT
,这只是INT
从开始到截止日期 的天数。Age
也是INT
天数。)
我想要一个表格,其中包含表格中的每个人,他们拥有的任务数量以及他们拥有的任务数量LATE
(如果有的话)。
我可以轻松地在单独的表中获取这些数据,如下所示:
SELECT ks,COUNT(*) AS '# Tasks' FROM Table GROUP BY ks
返回数据如:
ks # Tasks
person1 7
person2 3
然后我有:
SELECT ks,COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks
返回:
ks # Late
person1 1
person2 1
我想加入这两个select
语句的结果(由KS
)
我试图避免使用临时表,但如果这是唯一可行的方法,我想了解更多关于以这种方式使用临时表的信息。
我也尝试做一些count()
满足条件的行,但我也不知道该怎么做。如果可能的话,那也行。
附录:抱歉,我希望我的结果包含KS
、Tasks
和列Late
KS # Tasks # Late
person1 7 1
person2 3 1
person3 2 0 (or null)
此外,我希望一个人即使没有迟到的任务也能出现。
SUM(CASE WHEN Age > Palt THEN 1 ELSE 0 END) Late
效果很好,感谢您的回答!
两个 select 语句也可以,使用 aLEFT JOIN
加入它们也可以,我现在明白了如何以select
这种方式加入多个 s
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。