AI로 배우는 중급 SQL 쿼리
Jasmin Ludolf
Senior Data Science Content Developer
어떤 언어가 영화 20편 초과인가요?
WHERE
$$
$$
$$
HAVING
프롬프트: 영화가 20편 초과인 언어는?
SELECT language, COUNT(*) AS lang_count
FROM films
GROUP BY language
HAVING COUNT(*) > 20;
|language|
|--------|
|Mandarin|
|Spanish |
|French |
|Hindi |
|English |
$$
프롬프트: 예산 500만 초과 영화의 제목과 예산
SELECT title, budget
FROM films
WHERE budget > 5000000;
|title |budget |
|---------------|-------|
|Metropolis |6000000|
|Duel in the Sun|8000000|
|Quo Vadis |7623000|
|West Side Story|6000000|
...
프롬프트: 언어와 예산, 평균 예산을 반올림해 500만 초과
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 |
...
프롬프트: 2000년 이후 영화가 5편 초과이고 평균 상영 시간이 80을 넘는 언어를 표시
프롬프트: 2000년 이후 영화가 5편 초과이고 평균 상영 시간이 80을 넘는 언어를 표시
SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration FROM filmsWHERE release_year >= 2000GROUP BY language
프롬프트: 2000년 이후 영화 5편 초과이고 평균 상영 시간이 80을 넘는 언어를 표시
SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films
WHERE release_year >= 2000
GROUP BY language
프롬프트: 2000년 이후 영화 5편 초과, 평균 상영 시간이 80을 넘는 언어를 표시
SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration FROM films WHERE release_year >= 2000 GROUP BY languageHAVING COUNT(*) > 5 AND ROUND(AVG(duration)) > 80;
|language|film_count|average_duration|
|--------|----------|----------------|
|Mandarin|26 |112 |
|Japanese|10 |114 |
|Spanish |37 |107 |
...
$$
FROM ➝

$$
FROM ➝ WHERE ➝

$$
FROM ➝ WHERE ➝ GROUP BY (및 집계) ➝

$$
FROM ➝ WHERE ➝ GROUP BY (및 집계) ➝ HAVING ➝

$$
FROM ➝ WHERE ➝ GROUP BY (및 집계) ➝ HAVING ➝ SELECT ➝

$$
FROM ➝ WHERE ➝ GROUP BY (및 집계) ➝ HAVING ➝ SELECT ➝ ORDER BY ➝

$$
FROM ➝ WHERE ➝ GROUP BY (및 집계) ➝ HAVING ➝ SELECT ➝ ORDER BY ➝ LIMIT

둘 다: 2000년 이후 영화, 평균 상영 시간이 80 초과
WHERE: 개별 레코드
HAVING: 집계 기준

$$
1) 작게 시작
2) 결과 확인
3) 더 구체화해 다시 프롬프트
4) 반복!

AI로 배우는 중급 SQL 쿼리