Tóm tắt SQL (2)
Một tác vụ phổ biến khác với cơ sở dữ liệu là tổng hợp (aggregation). Tức là, rút gọn dữ liệu bằng cách chia thành các phần và tóm tắt từng phần.
Trong SQL, việc này được thực hiện với lệnh GROUP BY. Lệnh này chia dữ liệu của bạn thành các nhóm và áp dụng một hàm trong câu lệnh SELECT cho từng nhóm.
Ví dụ, nếu bạn muốn đếm số chuyến bay từ mỗi sân bay khởi hành, bạn có thể dùng truy vấn
SELECT COUNT(*) FROM flights
GROUP BY origin;
GROUP BY origin cho SQL biết rằng bạn muốn đầu ra có một hàng cho mỗi giá trị duy nhất của cột origin. Câu lệnh SELECT chọn các giá trị bạn muốn điền cho từng cột. Ở đây, chúng ta muốn COUNT() mọi hàng trong mỗi nhóm.
Bạn có thể GROUP BY nhiều hơn một cột. Khi làm vậy, bảng kết quả sẽ có một hàng cho mọi tổ hợp của các giá trị duy nhất ở mỗi cột. Truy vấn sau sẽ đếm số chuyến bay từ SEA và PDX đến mọi sân bay đích:
SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;
Đầu ra sẽ có một hàng cho mọi kết hợp giá trị trong origin và dest (tức là một hàng liệt kê từng điểm khởi hành và điểm đến mà một chuyến bay đã bay tới). Sẽ có thêm một cột với COUNT() của tất cả các hàng trong mỗi nhóm.
Nhớ rằng, bạn có thể xem chi tiết hơn về SQL tại đây.
Truy vấn này sẽ lấy thông tin gì? Hãy nhớ bảng flights chứa thông tin về các chuyến bay khởi hành từ PDX và SEA trong năm 2014 và 2015. Lưu ý rằng hàm AVG() lấy giá trị trung bình của một cột!
SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;
Bài tập này là một phần của khóa học
Nền tảng về PySpark
Bài tập tương tác thực hành
Biến lý thuyết thành hành động với một trong các bài tập tương tác của chúng tôi
Bắt đầu bài tập