sql - SQL联合但垂直
问题描述
最近开始使用 SQL 中的简单查询
我想知道是否有可能像“联合”一样垂直添加数据
我有两个要组合的选择
month year data1 data2 grouped by month, year
month year data3 data4 grouped by month, year
我要存档的是
month year data1 data2 data3 data4
有没有像 union 这样的功能来存档这个?我试图用“加入”来做到这一点,但失败了
解决方案
听起来 aFULL 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>
推荐阅读
- jquery - Jquery - 将数据切换属性添加到表格单元格不起作用
- python - ThreadingTCPServer 与 ThreadingMixIn HTTPServer
- google-sheets - 计算 Google 表格中唯一日期的唯一值
- python - 是否有必要在 Django 中为主页模型创建新应用程序?
- ajax - Laravel 如果条件有两个按钮
- typescript - 检查没有泛型实例的泛型类型
- internet-explorer - 当用户在 IE 浏览器中进行编辑时,防止光标移动到输入框的末尾
- r - 我在 mvrnorm 函数中设置 n=1,如何修复“要替换的项目数不是替换长度的倍数”错误?
- android - 来自 URL 的 xml 图像未加载
- javascript - 将img的未指定高度与另一个相邻的div匹配?