Tiêu chí PARTITION BY
Thuộc phần Kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 59 trên 72.
Một lựa chọn khác cho mệnh đề OVER () là PARTITION BY
Nó cho phép chúng ta đánh số các hàng riêng cho từng nhóm
Ví dụ:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1Thao tác này sẽ tạo một cột đánh số riêng các hàng của từng loại, theo thứ tự id (kết quả bên dưới được nhóm theo loại):
| id | type | row_num |
| 92 | t1 | 1 |
| 132 | t1 | 2 |
| 198 | t1 | 3 |
| 52 | t2 | 1 |
| 154 | t3 | 1 |
id 92 có row_num là 1 vì đây là id nhỏ nhất trong type t1.
Ghi chú: ORDER BY bên trong OVER() là tùy chọn. Nếu không có phần này, các hàng trong mỗi phân vùng vẫn được đánh số, nhưng thứ tự không được đảm bảo.
Ta thậm chí có thể chỉ định nhiều cột bên trong PARTITION BY:
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)Thử thách
DễCác bảng và cột hiện có:
doors:id,publication_yeardoors_specs:id,country,color
Một nhà máy đang sản xuất cửa. Nhà máy cần đánh số các cửa trong từng tổ hợp country và color có publication_year nhỏ hơn 2000. Đặt tên cột này là row_num.
Đánh số các cửa trong mỗi nhóm theo thứ tự tăng dần của id. Bỏ qua những cửa không có thông tin thông số kỹ thuật. Sắp xếp kết quả cuối cùng theo thứ tự tăng dần của id.
Tự làm thử
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 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ị logic8Thống kê
Hàm tổng hợp tích hợp sẵn phần 1Hàm tổng hợp tích hợp sẵn phần 2Nhóm dữ liệu phần 1Nhóm dữ liệu phần 2Truy vấn con phần 1Truy vấn con phần 2Ôn tập: cửa hàng Total GainÔn tập: cửa hàng xe tay gaÔn tập: quán cà phê11Hàm cửa sổ, phần 1
Hàm ROW_NUMBERTiêu chí ORDER BYTiêu chí PARTITION BYPARTITION và ORDERCác hàm LEAD và LAGÔn tập: LEAD và LAGÔn tập: hình ảnhÔn tập: hộp3Đị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