1

我一直试图弄清楚/搜索如何做到这一点,但失败了。

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

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

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

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

4

2 回答 2

1

将其包装在派生查询中:

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

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

于 2013-01-23T00:54:36.737 回答
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
于 2013-01-23T01:03:47.600 回答