Re: [SQL ] 如何過濾同一個區間多餘的資料

看板Database (資料庫)作者 (可愛小孩子)時間6年前 (2018/02/04 23:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
select COUNT(*) AS server_amount, MIN(t1.amount), MAX(t1.amount) from stats t1 inner join ( select min(id) as id, DATE_FORMAT(created_at,'%Y-%m-%d %H:%i') as created_at from stats group by server_id,DATE_FORMAT(created_at,'%Y-%m-%d %H:%i') ) t2 on t1.id = t2.id group by t2.created_at ※ 引述《chan15 (ChaN)》之銘言: : 資料庫名稱:MySQL : 資料庫版本:5.6 : 內容/問題描述: : 資料表架構以及資料 : id server_id amount created_at : "1" "1" "20" "2018-02-04 16:05:03" : "2" "2" "10" "2018-02-04 16:05:03" : "3" "1" "12" "2018-02-04 16:06:02" : "4" "2" "30" "2018-02-04 16:06:02" : "5" "1" "10" "2018-02-04 16:06:10" : "6" "2" "40" "2018-02-04 16:06:10" : "7" "1" "15" "2018-02-04 16:07:04" : "8" "2" "15" "2018-02-04 16:07:04" : 各位好,我的 crontab 每分鐘會執行一次,去紀錄每台 server 的人數 : 但有可能因為測試原因,造成同一分鐘不只一組資料 : 像這個 demo id 5 以及 6 就是多餘的 : 我要統計的語法為 : SELECT COUNT(*) AS server_amount, MIN(amount), MAX(amount) : FROM stats : GROUP BY DATE_FORMAT(created_at, '%Y-%m-%d %H:%i') : 上面這段資料得到的結果則是 : "2" "10" "20" : "4" "10" "40" : "2" "15" "15" : 第二筆資料受到了錯誤資料的影響,不知道怎麼排除在該時間內多餘的資料 : server 不一定只有兩台,所以不能用 server_id 數字當作依據 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.223.57.55 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1517756910.A.581.html
文章代碼(AID): #1QTo7kM1 (Database)
文章代碼(AID): #1QTo7kM1 (Database)