![見出し画像](https://assets.st-note.com/production/uploads/images/83582664/rectangle_large_type_2_26b65cff1195d386ee5f2d01bac34a5f.jpeg?width=1200)
【SQL】count文の使い方を例文を用いて解説(練習問題あり)
count文は集計関数の一つで、指定したレコード(行)の数を計測する関数です。distinctは計測の重複をなくすために用い、UU(ユニークユーザー)を算出する際などに用います。
そんなcount文を、初心者でも理解しやすいよう、例題を用いて、徹底解説していきます。
count文の基本構文
count文は以下の構文を使うことで条件指定できる。
SELECT
count(カラム)
FROM
テーブル
または、
SELECT
count(distinct カラム)
FROM
テーブル
count文はcount内で計測したいカラムを指定する必要がある。
カラムを指定せずに、レコード数を計測する際は、
count(1)
というクエリーを実行することができる。
以下は例題だ。
![](https://assets.st-note.com/img/1652482934505-3LJjJ2M107.png?width=1200)
上の図で、「総生徒数」を計測する場合は、
SELECT
count(id)
FROM
1年1組基本情報
とクエリーを書く必要がある。
※ count(1)でも同じ結果になる。
distinctを使うと、重複をなくした計測が実行される。
「8人の生徒が入っている部活動数」を計測したい場合は、
SELECT
count(distinct 部活動)
FROM
1年1組基本情報
と書く。クエリーを実行すると、8人の生徒が5つの部活動に入っているという結果が返ってくるのだ。
count文の練習問題
練習問題を通じて、実践的にcount文の用法を理解していく。
![](https://assets.st-note.com/img/1652483784483-ClIy7l5JUJ.png?width=1200)
練習問題 : 「30歳以上の生徒数を計測せよ」
練習問題では、where句を組み合わせたcount文の用法を確認する。
where文の復習(第二回)はこちら👇
回答は以下である。
SELECT
count(id)
FROM
1年1組基本情報
where
年齢 >= 30
結果は以下のように抽出される。
![](https://assets.st-note.com/img/1652484122885-9lUdabyBrt.png?width=1200)
count文でよくあるエラーと解消法
count文でよく起こるエラーと、その解消法を解説していく。
計測するカラムを()で括り忘れるケース
count文では、計測したいカラムを()で括る必要がある。
また、distinctを用いる場合も、
SELECT
count distinct (カラム)
ではなく、
SELECT
count (distinct カラム)
と記入することで、エラーを解消してもらいたい。
count(*)と記入してしまうケース
エラーではないが、処理に莫大な時間を要してしまうケースだ。
「*」は全カラム、全レコードをを抽出するものなので、countと組み合わせると、処理するサーバーに負荷がかかってしまう。
(リアルな現場だと、社内エンジニアの方に怒られてしまうこともあります)
そのため、カラムを限定せずレコード数を計測したい場合は、
count(1)
とクエリーを書く癖をつけることを推奨する。
最後に自己紹介
はじめまして、ニューズピックス(https://newspicks.com/)でマーケターをしている平野佑樹です。
普段は、JobPicksというジョブ型キャリアを支援するWebサービス(https://job.newspicks.com/)を運営しており、
SQLやGoogle Analyticsを用いた分析
TwitterをはじめとしたSNS運用(ショート動画にも挑戦予定)
メールマガジン運用
Google Optimizeなどを用いたA/Bテスト
Search Consoleを用いてコンテンツSEOや開発に関わるSEO施策
など、幅広く業務を担当しています。
マーケターの業務を後押しするtipsをnoteにて発信しております。
(ぜひ、いいねや拡散お願いいたします🙇)
ぜひ、フォローや興味持っていただいた方は、(https://twitter.com/enterrocken)にDMいただけますと幸いです!