簡體   English   中英

從mysql獲取最后30條記錄,但不是最后1條

[英]get the last 30 records from mysql but not the very last 1

我一直在嘗試找出/搜索如何執行此操作,但是失敗了。

我有一個ID為主鍵和自動遞增的表,還有一個列單擊器,它計算成員的單擊數。 我想做的是最后30條記錄中“ clickers”的平均值,最后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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM