注:私はこの質問に対して最も正しい主題を与えているかどうかは分かりませんが、これに対する正しいアプローチについてはわかりませんが、どこからでも他の例は見つかりませんでした。非常に特定のクエリです。SQL - GROUP BYの最大値
だから、私は(投票レコード「upvote」別のテーブルに記事をreleventに対応(一意user_idは列の番号として識別)は、ユーザーが作成した投票で満たされているテーブルの「票」を、持っていますそれぞれの関連する投稿はユーザインターフェース内にある)。私は、最新の投票のためにこれらの票(日時によって)をソートするつもり
は、それぞれのを作成しを投稿(は列をpost_idの)、そのように、回避の重複は、各post_idのの値を返していました。
I入力、次のクエリ:
SELECT id, user_id, post_id, created, MAX(created)
FROM votes
GROUP BY post_id, user_id
ORDER BY max(created) DESC
そして返されます:あなたが見ることができるように
Table: votes
id | user_id | post_id | created | MAX(created)
----+-----------+-----------+-----------------------+--------------------
115 | 1 | 42 | 2014-07-03 23:08:31 | 2016-03-07 12:08:31
----+-----------+-----------+-----------------------+--------------------
237 | 2 | 101 | 2014-02-13 23:05:14 | 2016-03-05 23:05:14
----+-----------+-----------+-----------------------+--------------------
431 | 7 | 944 | 2014-10-22 22:58:37 | 2016-03-03 19:58:37
----+-----------+-----------+-----------------------+--------------------
255 | 15 | 101 | 2014-02-15 14:02:01 | 2016-02-01 23:05:14
----+-----------+-----------+-----------------------+--------------------
... | ... | ... | ... | ...
、の重複が "101"をpost_idのがあります。このクエリの結果は、それぞれuser_idの最大作成時間でソートされ、重複して表示されます。post_idpost_id列の行が「101」の場合、post_id列の値「101」が最大作成時間(MAX(が作成された))のみを表示したい場合。
私はでわずかグループは、それが(最大を返しませんので、私はMAX(がを作成した)でソートすることができませんでしだをpost_idの場合列は、一見、一緒に他のグループ化する必要がありとUSER_IDをpost_idのを作成してください)。
これらを削除するにはどうすればいいですかpost_id最大作成時間を返さない値はありますか?私は後だ何
:
Table: votes
id | user_id | post_id | created | MAX(created)
----+-----------+-----------+-----------------------+--------------------
115 | 1 | 42 | 2014-07-03 23:08:31 | 2016-03-07 12:08:31
----+-----------+-----------+-----------------------+--------------------
237 | 2 | 101 | 2014-02-13 23:05:14 | 2016-03-05 23:05:14
----+-----------+-----------+-----------------------+--------------------
431 | 7 | 944 | 2014-10-22 22:58:37 | 2016-03-03 19:58:37
----+-----------+-----------+-----------------------+--------------------
... | ... | ... | ... | ...
user_IDでグループ化しないでください。 max(作成)の後にいるだけで、同じPost_IDに結びついている限り、そのmax(作成された)データに対して返されるuser_IDは何も気にしないでください。user_IDでグループ化しないでください。 – xQbert
私はちょうどpost_idでグループ化していますが、最後のpost_idのuser_idに関連する各post_idの最大値(作成された)を返さないため、MAX(作成済み)で並べ替えることができません – user1228907