SQLで「日付順だけど、user_idごと」という条件でソートしたいです。
こんなテーブルなのですが、普通に取得すると
「1,2,2,3」となりますが、
「1,2,3,2」のように取得したいのです。
PHP
1MariaDB [social]> SELECT * FROM histories ; 2+----+---------------------+---------+ 3| id | insert | user_id | 4+----+---------------------+---------+ 5| 1 | 2020-02-08 01:00:00 | 1 | 6| 2 | 2020-02-08 02:00:00 | 2 | 7| 3 | 2020-02-08 03:00:00 | 2 | 8| 4 | 2030-02-08 04:00:00 | 3 | 9+----+---------------------+---------+ 10 11↓「日付順だけど、user_idごと」という条件でソートしたい 12 13+----+---------------------+---------+ 14| id | insert | user_id | 15+----+---------------------+---------+ 16| 1 | 2020-02-08 01:00:00 | 1 | 17| 2 | 2020-02-08 02:00:00 | 2 | 18| 4 | 2030-02-08 04:00:00 | 3 | 19| 3 | 2020-02-08 03:00:00 | 2 | 20+----+---------------------+---------+ 21
まずは同じuser_idをグループ化すれば「1,2,2,3」でなく「1,2,3」と取得できると考えて下記書いたのですが、もうこの取得の時点で躓いていて、
PHP
1SELECT *, count(user_id) as user_id 2FROM histories 3GROUP BY user_id 4ORDER BY insert DESC;
そしてこの取得が「1,2,3」と取得できたとしても、「じゃ次の2はどう取得するのか?」がわからなくなってしまって、もしよろしければどなたか教えて頂きたいのです。
不躾な質問で恐縮ですが、お願いできませんでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/08 14:38
2020/02/08 14:59
2020/02/08 15:54
2020/02/08 20:29
2020/02/08 21:28
2020/02/09 14:24
2020/02/09 14:30 編集
2020/02/09 15:00 編集
2020/02/09 15:25 編集
退会済みユーザー
2020/02/09 23:36
2020/02/10 00:47