mysql中統計字段中不同值的數量並分時間顯示


1.根據工作需要,需要統計一個用戶中當月訂單每天發送狀態情況,下面是這表字段

表中字段很多,當然我們也不需要這么多字段,只需要用戶字段user_id、狀態字段status、接收時間字段create_time、數量字段delivered_part

2.下面是sql語句

SELECT 
    SUM(tos.delivered_part) AS total,
    SUM(CASE tos.`status` WHEN 100 THEN tos.delivered_part ELSE 0 END) AS successNumber, 
    SUM(CASE tos.`status` WHEN -1 THEN tos.delivered_part ELSE 0 END) AS errorNumber,
    SUM(CASE WHEN  tos.`status` != -1 AND tos.`status` != 100 THEN tos.delivered_part 
      WHEN 0 THEN tos.delivered_part ELSE 0 END) AS otherNumber,
      DATE_FORMAT(tos.`create_time`,'%Y-%m-%d') AS 日期 
      FROM t_sms_order tos WHERE tos.user_id = 1410 AND tos.`create_time` BETWEEN '2019-03-31 23:59:59' AND '2019-04-30 23:59:59'
GROUP BY DATE_FORMAT(tos.`create_time`,'%Y-%m-%d');

 講解下四個求和語句sum的說明和一個date_format:

  第一個sum:求字段delivered_part里面值的和

  第二個sum:求字段delivered_part狀態是100,值的和

  第三個sum:求字段delivered_part狀態是-1,值的和

  第四個sum:求字段delivered_part狀態不是-1且狀態不是100,值的和

  date_format:根據時間字段create_time求每天的數量

最后加上條件然后利用日期分組

3.結果如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM