การจัดกลุ่มข้อมูล

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

Jasmin Ludolf

Senior Data Science Content Developer

การจัดกลุ่มข้อมูล

$$

  • ข้อมูลเชิงลึกสำหรับกลุ่มเฉพาะ

$$

  • รวมแถวที่มีค่าเดียวกัน

$$

  • สร้างสรุปเพื่อค้นหารูปแบบ

คอลเลกชันหนังสือภาษา

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

DISTINCT กับ GROUP BY

SELECT DISTINCT language
FROM films;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • ค่าที่ไม่ซ้ำกัน
  • มีภาษาอะไรบ้างในข้อมูล?
SELECT language
FROM films
GROUP BY language;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • สร้างกลุ่ม
  • แต่ละภาษามีภาพยนตร์กี่เรื่อง?
SQL ระดับกลางด้วย AI

Prompt สำหรับการจัดกลุ่ม

Prompt: จัดกลุ่มภาพยนตร์ตามภาษา

SELECT language, COUNT(*) AS lang_count
FROM films
GROUP BY language;
|language|lang_count|
|--------|----------|
|        |11        |
|Arabic  |5         |
|Kannada |1         |
|Czech   |1         |
...

$$

  • การจัดกลุ่มมักใช้คู่กับสถิติสรุป:
    • เช่น การนับ, ค่าเฉลี่ย

$$

  • ไม่ระบุฟังก์ชัน -> COUNT()
    • ฟังก์ชัน Aggregate
    • สรุปหลายแถวให้เป็นค่าเดียว
SQL ระดับกลางด้วย AI

ข้อผิดพลาดที่พบบ่อยในการจัดกลุ่ม

Prompt: แสดงชื่อภาพยนตร์ทั้งหมดโดยจัดกลุ่มตามภาษา

SELECT title
FROM films
GROUP BY language;
column "films.title" must appear in the
GROUP BY clause or be used in an 
aggregate function LINE 1...

AI แก้ไขด้วยการ:

  • เพิ่มฟังก์ชัน COUNT()
    SELECT language, COUNT(title) AS count
    FROM films
    GROUP BY language;
    
  • เลือกฟิลด์ที่ถูกต้อง
    SELECT title, language
    FROM films
    GROUP BY title, language;
    
SQL ระดับกลางด้วย AI

Prompt สำหรับการจัดกลุ่ม

Prompt: นับภาพยนตร์ตามประเทศและภาษา

SELECT country, language, COUNT(*) AS film_count
FROM films
GROUP BY country, language;
|country           |language|film_count|
|------------------|--------|----------|
|                  |        |1         |
|Pakistan          |Urdu    |1         |
|Mexico            |English |3         |
|Dominican Republic|Spanish |1         |
...
SQL ระดับกลางด้วย AI

การจัดกลุ่มและเรียงลำดับ

Prompt: จัดอันดับภาษาตามจำนวนภาพยนตร์ โดยแสดง 3 อันดับแรก

SELECT language, COUNT(*) AS film_count
FROM films
GROUP BY language
ORDER BY film_count DESC
LIMIT 3;
|language|film_count|
|--------|----------|
|English |4635      |
|French  |72        |
|Spanish |40        |
SQL ระดับกลางด้วย AI

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

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

Preparing Video For Download...