UNION và UNION ALL
Thuộc phần Vượt ra ngoài kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 16 trên 27.
Bạn đã gặp UNION trong Fundamentals: nó xếp chồng hai tập kết quả lên nhau. Mặc định, nó cũng loại bỏ các phần tử trùng lặp, việc này tốn thêm một lần sắp xếp.
SELECT name FROM authors
UNION
SELECT name FROM editorsUNION ALL xếp chồng các hàng tương tự, nhưng giữ lại các hàng trùng lặp. Cách này nhanh hơn và gần như luôn là lựa chọn bạn muốn khi biết hai phía không thể tạo ra cùng một hàng, hoặc khi bạn thực sự muốn đếm từng lần xuất hiện.
SELECT name FROM authors
UNION ALL
SELECT name FROM editorsCả hai vế phải trả về cùng số lượng cột, theo cùng thứ tự và có kiểu dữ liệu tương thích.
Thử thách
DễCác bảng và cột hiện có:
online_orders:order_no,amountretail_orders:ticket_no,total
Hai bảng theo dõi đơn hàng từ các kênh khác nhau, với tên cột khác nhau. Trả về một danh sách kết hợp gồm mọi đơn hàng với các cột:
channel:'online'hoặc'retail'order_id:order_notừ kênh trực tuyến,ticket_notừ kênh bán lẻamount: tổng giá trị đơn hàng (từamounthoặctotal)
Giữ lại mọi hàng, không loại bỏ các hàng trùng lặp. Sắp xếp theo amount giảm dần.
Tự làm thử
-- Hai câu lệnh SELECT có cùng 3 cột, nối với nhau bằng UNION ALL
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Vượt ra ngoài kiến thức cơ bản
6Công thức phân tích dữ liệu
Top N trong mỗi nhómTỷ lệ trên tổngTổng lũy kếGiữ lại một hàng cho mỗi khóaÔn tập: khách hàng hàng đầuTự luyện tập: Playground SQL