0
SELECT DISTINCT no, COUNT(*) AS TOTAL 
FROM ar_test 
GROUP BY no 
ORDER BY TOTAL DESC

此代码工作正常

所以我有这一列no,它包含从 0 到 36 的数字而且我有很多行。因此,此 SQL 将它们分组为单个 0、1、2、3、4 .... 36 并TOTAL给出每个 0 到 36 数字的计数。它看起来像这样:

0 - 是表中的 40 次
1 - 是 35 次
2 - 15
3 - 14 等等......
这段代码计算了我所有的行。

所以我需要添加限制,我只想计算最后 100 行并检查它们的计数。
例如,如果我LIMIT 7在我的 SQL 代码末尾添加。它不会那样工作,因为它会给我从 0 到 6 的计数...首先我需要选择(限制)最后 7 行,然后使用我的代码类型并计算它们。

4

2 回答 2

2

您需要使用子查询:

select a.no, count(*) total 
  from (
        select no from test order by no desc limit 5
       ) a
  group by a.no 
  order by total desc;

这是小提琴http://sqlfiddle.com/#!2/a7ca0f/12

于 2013-11-06T22:30:32.943 回答
1

我只想计算最后 100 行并检查它们的计数。

我假设你有某种 id 可以在子查询中使用:

select no, count(*)
from (select no from table order by id desc limit 100) as subset
group by no
于 2013-11-06T22:23:23.207 回答