gpt4 book ai didi

sql - JOIN 两个 SELECT 语句结果

转载 作者:行者123 更新时间:2023-12-03 04:19:37 29 4
gpt4 key购买 nike

是否可以将 2 个 sql SELECT 语句的结果连接到一个语句中?我有一个任务数据库,其中每条记录都是一个单独的任务,有截止日期(以及 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() 操作,但我也不知道如何做到这一点。如果可以的话,那也行。

附录:抱歉,我希望我的结果包含 KSTasksLate

KS        # Tasks   # Late
person1 7 1
person2 3 1
person3 2 0 (or null)

此外,我希望一个人能够出现,即使他们没有迟到的任务。

SUM(CASE WHEN Age > Palt THEN 1 ELSE 0 END) 迟
效果很好,感谢您的回答!

两个 select 语句也可以工作,使用 LEFT 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);

关于sql - JOIN 两个 SELECT 语句结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538539/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com