MySQL按天/周/月/季度/半年/年統計數據


MySQL按天/周/月/季度/半年/年統計數據

1、用到的mysql函數

  • FROM_UNIXTIME(時間戳, 格式)

    • 將時間戳格式成指定字符串
    • 格式說明
      • %Y 年, 數字, 4 位
      • %m 月, 數字(01……12)
      • %c 月, 數字(1……12)
      • %u 星期(0……52), 這里星期一是星期的第一天
      • %U 星期(0……52), 這里星期天是星期的第一天
      • %d 月份中的天數, 數字(00……31)
      • %e 月份中的天數, 數字(0……31)
        select FROM_UNIXTIME('1598812205','%Y-%m-%d');
        # 2021-09-03
        
  • YEAR(時間字符)

    • 返回時間中的年份

      select YEAR('2021-09-03');
      # 2021
      
  • QUARTER(時間字符)

    • 返回時間中的季度,1-4

      select QUARTER('2021-09-03');
      # 3
      
  • IF(條件, 正確值, 錯誤值)

    • 判斷條件,條件滿足返回正確值,條件不滿足返回錯誤值

      select IF(1=1,'正確','錯誤');
      # 正確
      
  • 浮點數取整

    • ceil(): 向上取整

    • floor():向下取整

    • round():四舍五入

      select ceil(4.5);	# 5
      select floor(4.5);	# 4
      select round(4.4);	# 4
      select round(4.5);	# 5
      
  • CONCAT(字符1,字符2,...)

    • 拼接字符

      select CONCAT('aa','bb','cc');
      # aabbcc
      

2、數據表

  • order表
id order_amount add_time
1 16.99 1598806195
2 17.99 1598919265
... ... ...

3、編碼

3.1、按天統計

SELECT
  FROM_UNIXTIME(add_time,'%c月%e日') 日期,
	count(*) 訂單數,
	sum(order_amount) 訂單金額
FROM
	`order` 
GROUP BY
	日期;

查詢結果

日期 訂單數 訂單金額
8月31日 24 1377.19
9月1日 10 407.76

3.2、按周統計

SELECT
  FROM_UNIXTIME(add_time,'%Y年%u周') 日期,
	count(*) 訂單數,
	sum(order_amount) 訂單金額
FROM
	`order` 
GROUP BY
	日期;

查詢結果

日期 訂單數 訂單金額
2020年36周 34 1784.95

3.3、按月統計

SELECT
  FROM_UNIXTIME(add_time,'%Y年%c月') 日期,
	count(*) 訂單數,
	sum(order_amount) 訂單金額
FROM
	`order` 
GROUP BY
	日期;

查詢結果

日期 訂單數 訂單金額
2020年8月 24 1377.19
2020年9月 10 407.76

3.4、按季度統計

SELECT
  CONCAT(YEAR(FROM_UNIXTIME(add_time)),'年第',QUARTER(FROM_UNIXTIME(add_time)),'季度') 日期,
	count(*) 訂單數,
	sum(order_amount) 訂單金額
FROM
	`order` 
GROUP BY
	日期;

查詢結果

日期 訂單數 訂單金額
2020年第3季度 34 1784.95

3.5、按半年統計

SELECT
	CONCAT(YEAR(FROM_UNIXTIME(add_time)),'年',IF(CEIL(QUARTER(FROM_UNIXTIME(add_time))/2)=1,'上','下'),'半年') 日期,
	count(*) 訂單數,
	sum(order_amount) 訂單金額
FROM
	`order` 
GROUP BY
	日期;

查詢結果

日期 訂單數 訂單金額
2020年下半年 34 1784.95

3.6、按年統計

SELECT
  FROM_UNIXTIME(add_time,'%Y年') 日期,
	count(*) 訂單數,
	sum(order_amount) 訂單金額
FROM
	`order` 
GROUP BY
	日期;

查詢結果

日期 訂單數 訂單金額
2020年 34 1784.95


免責聲明!

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



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