第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

每 15 分鐘的 MySQL 組紀(jì)元時間戳

每 15 分鐘的 MySQL 組紀(jì)元時間戳

PHP
慕娘9325324 2023-06-18 16:34:23
我有一個數(shù)據(jù)庫,它以相當(dāng)高的頻率收集一些數(shù)據(jù)并記錄每個條目的時間戳(存儲為紀(jì)元時間,而不是 mysql 日期時間)。例如timestamp               rssi    sender-------------------------------------------1592353967.171600       -67     9EDA3DBFFE151592353967.228000       -67     9EDA3DBFFE151592353967.282900       -62     E2ED2569BE21592353971.892600       -67     9EDA3DBFFE151592353973.962900       -61     2ADE2E4597B2...我的目標(biāo)是能夠在 15 分鐘的時間間隔內(nèi)獲得所有行的計數(shù),經(jīng)過研究可以使用GROUP BY. 理想情況下,最終輸出看起來像這樣timestamp               count------------------------------1592352000 (8:00pm EST)   38    1592352900 (8:15pm EST)   221592353800 (8:30pm EST)   0 <----- Important, must include periods with 0 entries1592354700 (8:45pm EST)   61...我在這里主要有兩件事的問題:1.能夠在結(jié)果中顯示時間戳間隔 2.在一個時間段內(nèi)顯示 0 行的間隔我目前的嘗試如下,而且是在正確的軌道上,因為那個時間段的數(shù)據(jù)實際上是正確的 Showing rows 0 - 23 (24 total, Query took 0.0264 seconds.)SELECT count(*) AS total, MINUTE(FROM_UNIXTIME(timestamp)) AS minuteFROM requestsWHERE timestamp >= 1592352000 AND timestamp < (1592352000 + 3600)  GROUP BY MINUTE(FROM_UNIXTIME(timestamp))total   minute  55  32  89  33  64  34  55  35  87  36  82  37  90  38  69  39  74  40  47  41  89  42  53  43  71  44  87  45  72  46  83  47  86  48  83  49  113 50  76  51  77  52  88  53  81  54  28  55  此數(shù)據(jù)是正確的,但有些時段未在此處顯示(該小時的前 30 分鐘沒有數(shù)據(jù),因此第一個minute條目從 32 開始)。還嘗試通過使用每 15 分鐘獲取一次SELECT count(*) AS total, MINUTE(FROM_UNIXTIME(timestamp)) AS minuteFROM requestsWHERE timestamp >= 1592352000 AND timestamp < (1592352000 + 3600)  GROUP BY MINUTE(FROM_UNIXTIME(timestamp)) DIV 15#1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'wave_master.requests.timestamp' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by任何幫助將不勝感激。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗 獲得超7個贊

您可以使用“數(shù)字”表在一小時 (0-3) 內(nèi)生成 15 分鐘的時間段,然后LEFT JOIN根據(jù)您的計數(shù),按 15 分鐘的時間段分組,使用0COALESCE替換值:NULL


SELECT periods.period * 900 + 1592352000 AS timestamp,

? ? ? ?FROM_UNIXTIME(periods.period * 900 + 1592352000) AS time,

? ? ? ?COALESCE(counts.total, 0) AS total

FROM (

? SELECT 0 period

? UNION ALL SELECT 1?

? UNION ALL SELECT 2

? UNION ALL SELECT 3

) periods

LEFT JOIN (

? SELECT (timestamp - 1592352000) DIV 900 AS period,

? ? ? ? ?COUNT(*) AS total

? FROM requests

? WHERE timestamp >= 1592352000 AND timestamp < 1592352000 + 3600

? GROUP BY period

) counts ON counts.period = periods.period

輸出(對于您問題中的數(shù)據(jù)加上其他幾個值):


timestamp? ?time? ? ? ? ? ? ? ? ? ? total

1592352000? 2020-06-17 00:00:00? ? ?1

1592352900? 2020-06-17 00:15:00? ? ?1

1592353800? 2020-06-17 00:30:00? ? ?5

1592354700? 2020-06-17 00:45:00? ? ?0

查看完整回答
反對 回復(fù) 2023-06-18
  • 1 回答
  • 0 關(guān)注
  • 171 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號