我有这个问题:
SELECT id_user, COUNT(*) as count
FROM posts
GROUP BY id_user
ORDER BY COUNT(*) DESC
它给出了按事件排序的id_user,以及每次出现的次数。 我可以在同一个请求中获取每个'id_user'的最新帖子吗?即我也想选择最后一个'帖子',但是当我做
时SELECT id_user, post, COUNT(*) as count
'post'中的值不是最后一个(也不是第一个;实际上我不知道如何排序组)。我应该再运行一次查询吗?
答案 0 :(得分:3)
我相信你可以通过max(post_id) last_post
添加select
来实现这一目标。
答案 1 :(得分:1)
这应该在一个查询中完成:
SELECT
p.id_user,
ap.post AS last_post,
COUNT(*) as count
FROM
posts p
JOIN posts ap on (
p.id_user = ap.id_user
AND ap.post_id = (
SELECT MAX(post_id) FROM posts ip WHERE p.id_user = ip.id_user
)
GROUP BY
p.id_user,
ap.post
ORDER BY
COUNT(*) DESC