从mysql获取最后30条记录,但不是最后1条记录

时间:2013-01-23 00:53:22

标签: php mysql sql

我一直试图找出/搜索如何做到这一点但失败了。

我有一个id为主键和自动增量的表,以及一个用于计算成员点击次数的列式答题器。我要做的是平均最后30条记录的“答题者”的价值,除了去年的最后一个记录

SELECT AVG(clickers) AS avgClickers FROM sitelogs_daily_stats ORDER BY id DESC LIMIT 30

但此代码包含最后的记录。我想跳过那个。

任何帮助都会非常有帮助。

2 个答案:

答案 0 :(得分:1)

将其包装在派生查询中:

SELECT 
    AVG(clickers) as avgClickers
FROM 
    (
        SELECT clickers 
        FROM sitelogs_daily_stats 
        ORDER BY id DESC 
        LIMIT 1,29
    ) AS t1

注意在派生查询中,我们选择感兴趣的记录,然后在外部查询中对它们进行平均。

答案 1 :(得分:0)

SELECT AVG(clickers) AS avgClickers
FROM sitelogs_daily_stats
WHERE id BETWEEN
    (SELECT MAX(id)
     FROM sitelogs_daily_stats) - 29 AND
    (SELECT MAX(id)
     FROM sitelogs_daily_stats) - 1