Lọc dữ liệu đã nhóm

Truy vấn SQL Trung cấp với AI

Jasmin Ludolf

Senior Data Science Content Developer

WHERE hay HAVING

Những ngôn ngữ nào có hơn 20 phim?

  • Đếm ngôn ngữ: tổng hợp và nhóm

 

WHERE

  • Từng hàng
  • Phim nào thỏa điều kiện này?

$$

$$

$$

HAVING

  • Kết quả đã nhóm
  • Nhóm nào thỏa điều kiện này?
Truy vấn SQL Trung cấp với AI

Lọc dữ liệu đã nhóm

Yêu cầu: Những ngôn ngữ nào có hơn 20 phim?

SELECT language, COUNT(*) AS lang_count
FROM films
GROUP BY language
HAVING COUNT(*) > 20;
|language|
|--------|
|Mandarin|
|Spanish |
|French  |
|Hindi   |
|English |

$$

  • Lọc sau:
    • Nhóm
    • Tổng hợp
    • Khi có số đếm
Truy vấn SQL Trung cấp với AI

Nhắc lệnh cho bộ lọc nhóm

Yêu cầu: Tựa phim và ngân sách với ngân sách trên 5 triệu

SELECT title, budget
FROM films
WHERE budget > 5000000;
|title          |budget |
|---------------|-------|
|Metropolis     |6000000|
|Duel in the Sun|8000000|
|Quo Vadis      |7623000|
|West Side Story|6000000|
...

Yêu cầu: Ngôn ngữ và ngân sách với ngân sách trung bình đã làm tròn trên 5 triệu

SELECT language, ROUND(AVG(budget)) AS avg_budget
FROM films
GROUP BY language
HAVING ROUND(AVG(budget)) > 5000000;
|language|avg_budget|
|--------|----------|
|Danish  |16700000  |
|None    |8250000   |
|Tamil   |150000000 |
...
Truy vấn SQL Trung cấp với AI

Kết hợp bộ lọc

Yêu cầu: Hiển thị ngôn ngữ có hơn 5 phim từ năm 2000, với thời lượng trung bình trên 80

Truy vấn SQL Trung cấp với AI

Kết hợp bộ lọc

Yêu cầu: Hiển thị ngôn ngữ có hơn 5 phim từ năm 2000, với thời lượng trung bình trên 80

SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films

WHERE release_year >= 2000
GROUP BY language
Truy vấn SQL Trung cấp với AI

Kết hợp bộ lọc

Yêu cầu: Hiển thị ngôn ngữ có hơn 5 phim từ năm 2000, với thời lượng trung bình trên 80

SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films
WHERE release_year >= 2000
GROUP BY language

Truy vấn SQL Trung cấp với AI

Kết hợp bộ lọc

Yêu cầu: Hiển thị ngôn ngữ có hơn 5 phim từ năm 2000, nơi thời lượng trung bình trên 80

SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films
WHERE release_year >= 2000
GROUP BY language

HAVING COUNT(*) > 5 AND ROUND(AVG(duration)) > 80;
|language|film_count|average_duration|
|--------|----------|----------------|
|Mandarin|26        |112             |
|Japanese|10        |114             |
|Spanish |37        |107             |
...
Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROM

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROMWHERE

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROMWHEREGROUP BY (và tổng hợp) ➝

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROMWHEREGROUP BY (và tổng hợp) ➝ HAVING

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROMWHEREGROUP BY (và tổng hợp) ➝ HAVINGSELECT

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROMWHEREGROUP BY (và tổng hợp) ➝ HAVINGSELECTORDER BY

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Thứ tự thực thi

$$

FROMWHEREGROUP BY (và tổng hợp) ➝ HAVINGSELECTORDER BYLIMIT

Một dây chuyền lắp ráp

Truy vấn SQL Trung cấp với AI

Gợi ý lọc

Cả hai: Phim từ năm 2000 trở đi có thời lượng trung bình trên 80

WHERE: Bản ghi riêng lẻ

  • Tựa phim phát hành sau 2024
  • Ngân sách trên 5 triệu

HAVING: Dựa trên tổng hợp

  • Ngôn ngữ có ngân sách trung bình trên 10000
  • Số lượng phim lớn hơn 5

Bút trên giấy

Truy vấn SQL Trung cấp với AI

Nhắc lệnh lặp

$$

1) Bắt đầu nhỏ

2) Kiểm tra kết quả

3) Nhắc lại để thêm chi tiết

4) Lặp lại!

Minh họa 3D bong bóng hội thoại, một có AI và một có dấu ba chấm

Truy vấn SQL Trung cấp với AI

Đến lúc thực hành!

Truy vấn SQL Trung cấp với AI

Preparing Video For Download...