電子書籍の厳選無料作品が豊富!

テーブル名:tb
event | artist
23 | hamasaki
23 | hamasaki
23 | smap
24 | speed
24 | smap

上のデータは
イベント23で浜崎が2曲歌ってSMAPが1曲歌い、
イベント24でスピードが1曲、SMAPが1曲歌ったようなことを考えます。

このようなデータが与えられたときに
浜崎が出演している回数をランキング形式で表示するのに

SELECT artist, COUNT( artist )
FROM tb
GROUP BY artist
ORDER BY COUNT( artist ) DESC

とすると同じイベント23で2曲歌っているので
浜崎は2回カウントされます。
これをイベントごとに1回分までしかカウントしない
(参加したイベント数)のような意味でカウントするには
どうしたらよいでしょうか?

A 回答 (1件)

SELECT artist, COUNT( distinct event ) as c


FROM tb
GROUP BY artist
ORDER BY c DESC
    • good
    • 0
この回答へのお礼

ありがとうございます!
こんなシンプルにできたんですね。
わからず変な事していたのが悔しいです。
助かりました。

お礼日時:2013/12/28 01:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!