【发布时间】:2020-11-24 11:33:05
【问题描述】:
这里是Mysql新手。
我有一个这样的表(名称:'audit_webservice_aua'):
+---------+------------------------------------------------+-- -----------------+------------------------+ |审计ID |设备代码 |响应状态 |查询日期 +---------+------------------------------------------------+-- -----------------+------------------------+ | 10001 | 0007756-gyy66-4c6e-a59d-xxxccyyyt1 |磷 | 2020-03-02 00:00:08.785 | 10002 | 0007756-gyy66-4c6e-a59d-xxxccyyyt2 | F | 2020-04-06 00:00:08.785 | 10003 | 0007756-gyy66-4c6e-a59d-xxxccyyyt3 | F | 2020-04-01 00:01:08.785 | 10004 | 0007756-gyy66-4c6e-a59d-xxxccyyyt1 |磷 | 2020-05-02 00:02:08.785 | 10005 | 0007756-gyy66-4c6e-a59d-xxxccyyyt1 |磷 | 2020-05-09 00:03:08.785 | 10006 | 0007756-gyy66-4c6e-a59d-xxxccyyyt2 |磷 | 2020-05-09 01:00:08.785 | 10007 | 0007756-gyy66-4c6e-a59d-xxxccyyyt7 | F | 2020-06-06 02:00:08.785 +---------+------------------------------------------------+-- -----------------+------------------------+每次有新的请求,上表都会存储请求的device_code、response_status和请求时间。
我需要获取包含两个给定日期之间每一天的每个 device_code、total_trans、total_successful、total_failure 和日期的结果集。
我写的查询如下:
选择 DATE_FORMAT(aua.request_date,'%b') 作为月份, YEAR(aua.request_date) 作为年份, DATE_FORMAT(aua.request_date,'%Y-%m-%d') 作为日期, (选择计数(aua.audit_id))作为 total_trans , (select count(aua.audit_id) where aua.response_status 'P') as total_failure , (选择 count(aua.audit_id) where aua.response_status = 'P') as total_successful , aua.device_code 作为 deviceCode FROM audit_webservice_aua aua where DATE_FORMAT(aua.request_date,'%Y-%m-%d') 在 '2020-04-16' 和 '2020-07-17' 之间 按日期分组,设备代码;在上面的代码中,我想得到“2020-03-02”和“2020-06-06”之间的结果,但我得到的计数不正确。 任何帮助,将不胜感激。 提前谢谢你。
【问题讨论】: