Ôn tập về truy vấn WITH
Thuộc phần Kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 50 trên 72.
Thử thách
DễCác bảng và cột hiện có:
devices_specs:device_id,width,height,num_features,opiniondevices_score:device_id,score
Chất lượng của thiết bị được đo bằng (width/height)*num_features.
Ta muốn tìm tất cả thiết bị bị đánh giá quá cao. Lấy tất cả thiết bị có opinion cao hơn chất lượng trung bình và score thấp hơn chất lượng trung bình. Chỉ trả về device_id.
Để giải bài này, hãy dùng mệnh đề WITH để tạo truy vấn con tính chất lượng trung bình, rồi dùng lại truy vấn đó trong truy vấn chính.
Tự làm thử
-- Bước 1: đặt tên cho tập kết quả tạm thời chứa một giá trị trung bình duy nhất
WITH avg_quality AS (
SELECT ____ AS avg_q
FROM devices_specs
)
-- Bước 2: kết hợp hai bảng thiết bị, rồi thêm tập kết quả tạm thời
SELECT dsp.device_id
FROM devices_specs dsp
INNER JOIN devices_score dsc ON ____
INNER JOIN avg_quality aq
-- Bước 3: giữ lại các thiết bị nằm ở hai phía đối diện của giá trị trung bình đó
WHERE ____Tất cả bài học trong Kiến thức cơ bản
2Điều kiện
Kiến thức cơ bản về điều kiệnTừ khóa ANDTừ khóa ORTừ khóa NOTKết hợp nhiều điều kiệnDấu ngoặc đơnGiá trị logic3Định dạng giá trị trả về cụ thể
Giá trị nullSắp xếp kết quả phần 1Sắp xếp kết quả phần 2Ôn tập: Công ty an ninh mạngGiới hạn số bản ghiÔn tập: Nhà máy sản xuất xe6Thử thách nhập môn
Ôn tập: bầu cử quốc hộiÔn tập: cảnh sát bắt giữ tội phạmÔn tập: vật chứa đồ uống tại quầy barÔn tập: kỹ sư tạo cột mớiTự luyện tập: Playground SQL