[英]how to get rows with time for each minute for last 30 minutes
對於每分鍾計數,解決方案不需要以下順序:
SELECT MINUTE(timestamp) as m, COUNT(*)
FROM table
WHERE timestamp > DATE_SUB(NOW(), INTERVAL 30 MINUTE)
GROUP BY m
處理應用程序中沒有條目的空白。
序列(如果有需要):
這是數字序列的擴展:
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.