繁体   English   中英

从mysql表中获取最近30天的数据并按日期分组

[英]Fetching last 30 days data from mysql table and grouping them by date

这是我的桌子的样子

| total_hit   |success_hit  | date_time             |
|      12     |          12 | 01-11-2009 07:32:44   | 
|      12     |          11 | 01-11-2009 08:33:49   | 
|      12     |          10 | 01-11-2009 09:08:24   | 
|      12     |          11 | 01-12-2009 10:33:57   | 
|      12     |          12 | 01-12-2009 11:37:34   | 
|      12     |          11 | 01-12-2009 12:23:49   | 

我正在使用以下查询从过去30天的表中获取数据:

SELECT *
FROM my_table
WHERE DATE(date_time) >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)

我想要做的是按照日期对返回的数据进行分组,然后计算成功百分比(success_hit/total_hit)*100

Date: 01-11-2009 Percentage: x
Date: 01-12-2009 Percentage: y

有任何想法吗?

select (success/total)*100 as perc_success, Date(date_time) from 
       (select sum(success_hit) as success, sum(total_hit) as total, 
            date_time from my_table
            where DATE(date_time) >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) 
            group by Date(date_time)  ) 
tbl

这应该工作!!!

尝试这个

SELECT (sum(success_hit)/sum(total_hit)*100) AS `Percentage`,
       DATE(date_time) AS `Date`
FROM my_table
WHERE DATE(date_time) >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY DATE(date_time);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM