1
看看下面的表格:如何分组最后的`n`行?
id - member_id - day
0 1 1
1 1 1
2 1 2
3 2 2
4 1 3
5 2 3
6 2 3
7 1 3
8 1 3
9 2 3
可以说我想要做的事,如:
SELECT `day`,
COUNT(`id`) AS `count`
FROM `table`
WHERE `member_id` = 1
GROUP BY `day`
ORDER BY `day` DESC
LIMIT 5
和我预想的一样的结果:
day - count
3 3
2 1
1 1
注意如何计数天1被削减一半,因为只有该成员的最近五行被分组。相反,我得到最后五组,按天排序。
如何仅将最近的n行与WHERE条件分组?
实际上,我想使用WHERE,LIMIT,然后只有GROUP。
您从查询中选择一天。这是我所知道的。 – 2015-02-09 22:36:12
我不完全明白,你知道'HAVING'子句吗? – 2015-02-09 22:36:45
@LuisSiquot我不明白'HAVING'如何为给定的成员提供最近的'n'行。 – 2015-02-09 22:39:32