データのグループ化

AIで学ぶ中級SQLクエリ

Jasmin Ludolf

Senior Data Science Content Developer

データのグループ化

$$

  • 特定グループの洞察

$$

  • 同じ値の行をまとめる

$$

  • 要約でパターンを見つける

言語の本のコレクション

AIで学ぶ中級SQLクエリ

Distinct と GROUP の違い

SELECT DISTINCT language
FROM films;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • 一意の値
  • どの言語があるか?
SELECT language
FROM films
GROUP BY language;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • グループを作成
  • 各言語の映画本数は?
AIで学ぶ中級SQLクエリ

グループ化のプロンプト

プロンプト: 言語ごとに映画をグループ化

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

$$

  • 要約統計と併用が一般的:
    • 例: 件数、平均

$$

  • 具体的指示がなければ COUNT()
    • 集計関数
    • 複数行を1つの値に要約
AIで学ぶ中級SQLクエリ

よくあるグループ化エラー

プロンプト: 言語ごとに映画タイトルを表示

SELECT title
FROM films
GROUP BY language;
列 "films.title" は
GROUP BY 句に含めるか、集計関数で
使用する必要があります LINE 1...

AI の修正:

  • COUNT() を追加
    SELECT language, COUNT(title) AS count
    FROM films
    GROUP BY language;
    
  • 正しい列を選択
    SELECT title, language
    FROM films
    GROUP BY title, language;
    
AIで学ぶ中級SQLクエリ

グループ化のプロンプト

プロンプト: 国と言語ごとの映画本数を数える

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         |
...
AIで学ぶ中級SQLクエリ

グループ化と並べ替え

プロンプト: 映画数で言語を順位付けし、上位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        |
AIで学ぶ中級SQLクエリ

練習しましょう!

AIで学ぶ中級SQLクエリ

Preparing Video For Download...