最近开始使用SQL中的简单查询
我想知道是否有可能像“联合”一样水平地垂直添加数据
我有两个选择要合并
month year data1 data2 grouped by month, year
month year data3 data4 grouped by month, year
我要存档的是
month year data1 data2 data3 data4
是否有任何功能可以像Union一样进行存档?我试图通过“加入”来做到这一点,但失败了
答案 0 :(得分:1)
听起来像FULL JOIN
可能就是您想要的。它包括来自两个操作数的所有行,这些行组合了满足ON
子句中表达式的行。如果另一个操作数中没有匹配的伙伴行,则另一个操作数的列将填充NULL
。这就是为什么需要coalesce()
来获取年份或月份的原因。
SELECT coalesce (x1.year, x2.year) year,
coalesce (x1.month, x2.month) month,
x1.data1,
x1.data2,
x2.data3,
x2.data4
FROM (<your first grouping query>) x1
FULL JOIN (<your second grouping query>) x2
ON x2.year = x1.year
AND x2.month = x1.month;
分别用第一个或第二个查询替换<your first grouping query>
和<your second grouping query>
。