UNION 与 UNION ALL
本课属于 Coddy SQL 学习旅程的“进阶内容”单元。第 16 课,共 27 课。
你在 Fundamentals 中学过 UNION:它会将两个结果集堆叠在一起。默认情况下,它还会删除重复项,这会额外进行一次排序。
SELECT name FROM authors
UNION
SELECT name FROM editorsUNION ALL 会执行相同的堆叠操作,但会保留重复项。它的速度更快,而且当你确定两边不会生成相同的行,或者确实想统计每次出现时,几乎总是你想要的选择。
SELECT name FROM authors
UNION ALL
SELECT name FROM editors两侧必须返回相同数量的列,列的顺序相同,且数据类型兼容。
挑战
简单可用的表和列:
online_orders:order_no,amountretail_orders:ticket_no,total
这两个表记录了来自不同渠道的订单,列名也不同。请返回一个包含所有订单的合并列表,列包括:
channel:'online'或'retail'order_id:线上订单的order_no,零售订单的ticket_noamount:订单总额(来自amount或total)
保留所有行(不去重)。按 amount 降序排列。
亲手试试
-- 两个 SELECT 查询对应相同的 3 列,通过 UNION ALL 合并。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
进阶内容中的所有课
自己练习: SQL 在线编辑器