我试图使用单个SQL查询返回前2个月的前五名评论者,但我无法理解我是如何加入联接查询的。
这是我的表格的样子:
+--------+--------+----------+------------+---------+
| postid | userid | username | dateline | comment |
+--------+--------+----------+------------+---------+
| 142535 | 5257 | oshatz | 1094462853 | ....... |
+--------+--------+----------+------------+---------+
这是我开始的查询。我想我已经接近了,但我无法弄清楚。
SELECT username, j.total
FROM post as post
JOIN (SELECT count(postid) as total
FROM post
WHERE userid = post.userid
AND dateline > 1328054400
AND dateline < 1330473600) as j
WHERE dateline > 1328054400
AND dateline < 1330473600
GROUP
BY userid
LIMIT 10
我希望结果看起来像这样
+----------+----------+
| username | total |
+----------+----------+
| Ken | 149 |
+----------+----------+
| Bob | 102 |
+----------+----------+
| Cindy | 100 |
+----------+----------+
| Linsy | 96 |
+----------+----------+
| Greg | 85 |
+----------+----------+
有人可以帮我构建该查询吗?谢谢!
答案 0 :(得分:1)
SELECT username, count(postid) as total
FROM post
WHERE dateline > 1328054400 AND dateline < 1330473600
GROUP BY userid, username
ORDER BY total DESC
LIMIT 10