我一直试图弄清楚/搜索如何做到这一点,但失败了。
我有以 id 作为主键和自动增量的表,以及一个计算成员点击次数的列点击器。我想要做的是平均最后 30 条记录的“点击者”的值,除了最后的最后 1
SELECT AVG(clickers) AS avgClickers FROM sitelogs_daily_stats ORDER BY id DESC LIMIT 30
但是此代码包含最后的记录。我想跳过那个。
任何帮助都会非常有帮助。
将其包装在派生查询中:
SELECT
AVG(clickers) as avgClickers
FROM
(
SELECT clickers
FROM sitelogs_daily_stats
ORDER BY id DESC
LIMIT 1,29
) AS t1
请注意,在派生查询中,我们选择感兴趣的记录,然后在外部查询中对它们进行平均。
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