การกรองข้อมูลแบบกลุ่ม

SQL ระดับกลางด้วย AI

Jasmin Ludolf

Senior Data Science Content Developer

WHERE หรือ HAVING

ภาษาใดมีภาพยนตร์มากกว่า 20 เรื่อง?

  • จำนวนภาษา: รวมและจัดกลุ่มแล้ว

 

WHERE

  • แต่ละแถว
  • ภาพยนตร์เรื่องใดตรงตามเงื่อนไขนี้?

$$

$$

$$

HAVING

  • ผลลัพธ์แบบกลุ่ม
  • กลุ่มใดตรงตามเงื่อนไขนี้?
SQL ระดับกลางด้วย AI

การกรองข้อมูลแบบกลุ่ม

Prompt: ภาษาใดมีภาพยนตร์มากกว่า 20 เรื่อง?

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

$$

  • กรองหลังจาก:
    • การจัดกลุ่ม
    • การรวมค่า
    • เมื่อมีจำนวนนับพร้อมใช้งาน
SQL ระดับกลางด้วย AI

การเขียน Prompt สำหรับกรองกลุ่ม

Prompt: ชื่อภาพยนตร์และงบประมาณที่มีงบประมาณสูงกว่า 5 ล้าน

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

Prompt: ภาษาและงบประมาณที่มีงบประมาณเฉลี่ย (ปัดเศษ) สูงกว่า 5 ล้าน

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 |
...
SQL ระดับกลางด้วย AI

การรวมตัวกรอง

Prompt: แสดงภาษาที่มีภาพยนตร์มากกว่า 5 เรื่องตั้งแต่ปี 2000 เป็นต้นไป โดยมีระยะเวลาเฉลี่ยเกิน 80

SQL ระดับกลางด้วย AI

การรวมตัวกรอง

Prompt: แสดงภาษาที่มีภาพยนตร์มากกว่า 5 เรื่อง ตั้งแต่ปี 2000 เป็นต้นไป โดยมีระยะเวลาเฉลี่ยเกิน 80

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

WHERE release_year >= 2000
GROUP BY language
SQL ระดับกลางด้วย AI

การรวมตัวกรอง

Prompt: แสดงภาษาที่มีภาพยนตร์ มากกว่า 5 เรื่อง ตั้งแต่ปี 2000 เป็นต้นไป โดยมีระยะเวลาเฉลี่ยเกิน 80

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

SQL ระดับกลางด้วย AI

การรวมตัวกรอง

Prompt: แสดงภาษาที่มีภาพยนตร์ มากกว่า 5 เรื่อง ตั้งแต่ปี 2000 เป็นต้นไป โดยมี ระยะเวลาเฉลี่ย เกิน 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             |
...
SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROM

สายการผลิต

SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROMWHERE

สายการผลิต

SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROMWHEREGROUP BY (และการรวมค่า) ➝

สายการผลิต

SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROMWHEREGROUP BY (และการรวมค่า) ➝ HAVING

สายการผลิต

SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROMWHEREGROUP BY (และการรวมค่า) ➝ HAVINGSELECT

สายการผลิต

SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROMWHEREGROUP BY (และการรวมค่า) ➝ HAVINGSELECTORDER BY

สายการผลิต

SQL ระดับกลางด้วย AI

ลำดับการทำงาน

$$

FROMWHEREGROUP BY (และการรวมค่า) ➝ HAVINGSELECTORDER BYLIMIT

สายการผลิต

SQL ระดับกลางด้วย AI

Prompt สำหรับการกรอง

ทั้งคู่: ภาพยนตร์ตั้งแต่ปี 2000 เป็นต้นไปที่มีระยะเวลาเฉลี่ยเกิน 80

WHERE: แต่ละแถว

  • ชื่อภาพยนตร์ที่เผยแพร่หลังปี 2024
  • งบประมาณสูงกว่า 5 ล้าน

HAVING: ระบุค่าที่รวมแล้ว

  • ภาษาที่มีงบประมาณเฉลี่ยมากกว่า 10,000
  • จำนวนภาพยนตร์มากกว่า 5

ปากกาบนกระดาษ

SQL ระดับกลางด้วย AI

การเขียน Prompt แบบวนซ้ำ

$$

1) เริ่มจากสิ่งเล็กน้อย

2) ตรวจสอบผลลัพธ์

3) เขียน Prompt ใหม่เพื่อเพิ่มรายละเอียด

4) ทำซ้ำ!

ภาพ 3 มิติของฟองคำพูด ฟองหนึ่งมีข้อความ AI และอีกฟองมีจุดไข่ปลา

SQL ระดับกลางด้วย AI

มาฝึกกันเถอะ!

SQL ระดับกลางด้วย AI

Preparing Video For Download...