簡體   English   中英

如何獲取最近30分鍾內每分鍾有時間的行

[英]how to get rows with time for each minute for last 30 minutes

像現在這樣的juat,最近30分鍾需要30行

現在僅返回當前時間的一行,我希望每分鍾最后30分鍾有30行

對於每分鍾計數,解決方案不需要以下順序:

SELECT MINUTE(timestamp) as m, COUNT(*)
FROM table
WHERE timestamp > DATE_SUB(NOW(), INTERVAL 30 MINUTE)
GROUP BY m

處理應用程序中沒有條目的空白。

序列(如果有需要):

db小提琴

這是數字序列的擴展:

SELECT
    DATE_SUB(NOW(), INTERVAL (TENS.SeqValue + ONES.SeqValue) MINUTE) as t
FROM
    (
    SELECT 0  SeqValue
    UNION ALL
    SELECT 1
    UNION ALL
    SELECT 2
    UNION ALL
    SELECT 3
    UNION ALL
    SELECT 4
    UNION ALL
    SELECT 5
    UNION ALL
    SELECT 6
    UNION ALL
    SELECT 7
    UNION ALL
    SELECT 8
    UNION ALL
    SELECT 9
    ) ONES
CROSS JOIN
    (
    SELECT 0 SeqValue
    UNION ALL
    SELECT 10
    UNION ALL
    SELECT 20
    ) TENS
ORDER BY t DESC

自10.0起的MariaDB具有序列存儲引擎 ,可簡化解決方案:

SELECT
    DATE_SUB(NOW(), INTERVAL seq MINUTE) as t
FROM seq_0_to_30
ORDER BY t DESC

暫無
暫無

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

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