みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データの件数を集計するための SQL

データの件数を集計するための SQL について教えてください。
例えば以下のようなテーブルがあります。

▼テーブル

名前 |交通手段|日付
-----+--------+----
Aさん|バス |5/1
Aさん|バス |5/2
Aさん|バス |5/3
Bさん|バス |5/1
Bさん|電車 |5/2

※「日付」については、本質問に直接の関係はありません。


このテーブルにクエリを発行して、以下の結果を取得したいと考えています。

▼取得したい結果

名前 |交通手段|回数
-----+--------+----
Aさん|バス |3
Bさん|バス |1
Bさん|電車 |1



当方がイメージしている流れは以下の通りです。
SQL は苦手でして、これをひとつにまとめることができません。

1) GROUP BY で束ねる
SELECT 名前, 交通手段
FROM テーブル
GROUP BY 名前, 交通手段

2) 1)の結果の1件目をSELECTする
SELECT COUNT(*)
FROM テーブル
WHERE 名前='Aさん' AND 交通手段='バス'

3) 1)の結果の2件目をSELECTする
SELECT COUNT(*)
FROM テーブル
WHERE 名前='Bさん' AND 交通手段='バス'

4) 1)の結果の3件目をSELECTする
SELECT COUNT(*)
FROM テーブル
WHERE 名前='Bさん' AND 交通手段='電車'


なおレンタルサーバ上 (MySQL 5.0.77) で稼働させるため、
なるべく高速な SQL を希望いたします。

投稿日時 - 2011-05-07 00:15:55

QNo.6719239

困ってます

質問者が選んだベストアンサー

SELECT 名前, 交通手段, COUNT(*) AS 回数
FROM テーブル
GROUP BY 名前, 交通手段

投稿日時 - 2011-05-07 00:28:17

お礼

ひえー・・・
1時間以上 LEFT JOIN だの UNION だのと考えていたのがバカみたい・・・

ありがとうございました!!!

投稿日時 - 2011-05-07 00:42:35

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問