MySQL如何按日期獲取指定時間段內訂單總數


需求:如何對訂單支付記錄表,獲取指定日期之間,每天的的訂單分布,比如想獲取 2020-08-01到 2020-09-25,每日的訂單分布。

如下表結構:

 

 思路如下:

主要是添加時間字段add_time,進行處理,變成日期格式;
然后通過BETWEEN操作符在 WHERE 子句中使用,作用是選取介於兩個值之間的數據范圍,來匹配日期范圍;
接下來通過CASE WHEN exc THEN 1 ELSE 0 END語句進行分類查詢獲取訂單分布情況;
最后通過GROUP BY 對新增處理后的時間time進行分組,按天返回每日訂單,和ORDER BY time DESC降序;

SQL寫法如下:

SELECT 
      FROM_UNIXTIME(add_time, '%Y-%m-%d') AS time,
      COUNT(1) AS '總單量(訂單總數)',
      SUM( CASE WHEN pay_status=1 THEN 1 ELSE 0 END ) AS '已支付(訂單總數)',
      SUM( CASE WHEN pay_status=1 THEN  money ELSE  0 END ) AS '已收款(訂單總價)',
      SUM( CASE WHEN pay_status=0 THEN  1 ELSE  0 END ) AS '已支付(訂單總數)',
      SUM( CASE WHEN pay_status=0 THEN  money ELSE  0 END ) AS '待支付(訂單總數)'
FROM `pw_pay_log` 
WHERE FROM_UNIXTIME(add_time, '%Y-%m-%d') BETWEEN '2020-08-18' AND '2020-09-11'
GROUP BY time
ORDER BY time DESC;

最后查詢結果如下:

 

 

 


免責聲明!

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



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