Re: [SQL ] 如何过滤同一个区间多余的资料

楼主: cutekid (可爱小孩子)   2018-02-04 23:08:27
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 数字当作依据

Links booklink

Contact Us: admin [ a t ] ucptt.com