ユーザーから再生された上位3曲をクエリするにはどうすればよいですか?ユーザーIDとSONG_NAMEここCHAR(255)ユーザーが再生する上位3曲をクエリするにはどうすればよいですか?
あるテーブルの説明である:私はsong_namesを変更
+--------+-----------+---------------------+
| userid | song_name | timestamp |
+--------+-----------+---------------------+
| 123 | A | 2017-01-04 01:35:41 |
| 123 | B | 2017-01-04 01:37:57 |
| 123 | B | 2017-01-04 01:38:32 |
| 123 | B | 2017-01-04 01:38:42 |
| 123 | C | 2017-01-04 01:38:46 |
| 123 | D | 2017-01-04 01:38:50 |
| 123 | E | 2017-01-04 01:38:54 |
| 123 | E | 2017-01-04 01:38:59 |
| 123 | A | 2017-01-04 01:39:03 |
| 123 | E | 2017-01-04 01:39:20 |
:ここ
+-----------+-----------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-----------+------+-----+-------------------+-------+
| userid | char(255) | YES | | NULL | |
| song_name | char(255) | YES | | NULL | |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | |
+-----------+-----------+------+-----+-------------------+-------+
は、テーブルがどのように見えるかのサンプルですあなたが理解しやすいように手紙を書いてください。 トップソングは実際には、song_nameがユーザーIDに対応する時間数になります。
現在のコード:
SELECT userid, GROUP_CONCAT(DISTINCT song_name
ORDER BY song_name)
top_songs
FROM sampleTable3
GROUP BY userid;
どのように私はそれがほとんどの演奏によって上位3曲順をプリントアウトだろうと、それを変えるのでしょうか?
私の質問は、特定の値がuseridに対応する回数を聞いています。
を "トップ3" の基準は何か? –
を参照してください。 @ AndriyIvaneyko。 –
グループごとのトップ質問である場合は、それもSOに関する回答があります:http://stackoverflow.com/questions/12113699/get-top-n-records-for-each-group-of-grouped -results – Shadow