gpt4 book ai didi

sql聚合选择结果

转载 作者:行者123 更新时间:2023-12-04 23:43:09 26 4
gpt4 key购买 nike

我想汇总我所有的选择结果:

我有一个 select user result1 from....) 返回 2 列:

user   results1
**** ********
user1 5
user2 8

我还有另一个查询 select user result2 from....) 返回另外 2 列:

user   results2
**** ********
user1 9
user2 5
user3 15

我如何将结果与 3 列连接在一起以制作如下内容:

user   results1   results2
**** ******** ********
user1 5 9
user2 8 5
user3 15

最佳答案

如果您不确定 User 值是否存在于两个表中,那么您应该使用 FULL JOIN 来查询表。一个 FULL JOINFULL OUTER JOIN(OUTER 是可选的)将返回两个表中的行,但如果其中一个表中不存在 user ,你仍然会得到结果:

select 
[user] = coalesce(r1.[user], r2.[user]),
r1.results1,
r2.results2
from result1 r1
full join result2 r2
on r1.[user] = r2.[user];

SQL Fiddle with Demo .

使用 INNER JOIN 的问题是它需要 User 在两个表中。如果您尝试使用 RIGHT JOINLEFT JOIN - 那么您可能仍然无法返回所有用户及其结果。

如果您尝试组合多个查询,则可以使用 CTE 或子查询:

;with query1 as
(
select [user], result1 from results1
),
query2 as
(
select [user], result2 from results2
)
select
[user] = coalesce(q1.[user], q2.[user]),
q1.result1,
q2.result2
from query1 q1
full join query2 q2
on q1.[user] = q2.[user]

关于sql聚合选择结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018837/

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