日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 平均月份_Mysql按月份统计和按时段统计SQL

發布時間:2025/1/21 数据库 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 平均月份_Mysql按月份统计和按时段统计SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先是需求分析:

現在有一個門店表store,記錄著多家門店。S1,S2,S3...等

還有一個訂單表orders,記錄著訂單,其中訂單表D的store_id關聯S表的主鍵ID

現在需要統計每個月份每個門店的銷量,和每個門店0點-8點,8點-24點的銷量

處理

問題1,需要統計分月分門店數據,GROUP BY分組查詢就好,其中這里的問題在于分月。由于數據庫中存的時間是時間戳格式(這里建議大家都存時間戳,方便統計分析)所以需要轉換格式

查詢到Myqsl的時間轉換函數是:FROM_UNIXTIME。其中%c是轉換出來的月份 01-12

大致搭建出來的SQL是:SELECT

sum(o.訂單單價)?AS?money,

o.store_id,

s.storename,

count(o.id)?AS?nums,

FROM_UNIXTIME(o.addtime,?'%c')?AS?months

FROM

orders?o

INNER?JOIN?store?s?ON?s.id?=?o.store_id

WHERE

o.state?=?1

AND?o.addtime?>?1483200000

GROUP?BY

store_id,

months

HAVING

months?IS?NOT?NULL

執行出來的結果是:

問題2:分時段統計

因為需要分時段統計訂單,那么數據處理的時候就不能直接拿出來分組了。所以這里用到WHEN THEN這個關鍵詞,其中的%H 轉出來是 00-23

搭建出來的SQL是SELECT

COUNT(orders.id)?AS?nums,

sum(cash_fee)?AS?money,

store_id,

CASE

WHEN?(

FROM_UNIXTIME(addtime,?'%H:%i:%s')?BETWEEN?'00:00:00'

AND?'07:59:59'

)?THEN

'00:00:00~08:00:00'

WHEN?(

FROM_UNIXTIME(addtime,?'%H:%i:%s')?BETWEEN?'08:00:00'

AND?'23:59:59'

)?THEN

'08:00:00~23:59:59'

END?AS?timetype

FROM

orders

JOIN?store?s?ON?orders.store_id?=?s.id

WHERE

addtime?IS?NOT?NULL

AND?orders.state?=?1

GROUP?BY

timetype,

store_id

查詢出來的結果是:

Mysql的這些關鍵詞在學校的時候還用過,但是出來上班之后用的比較少了,需要多用,多熟練

總結

以上是生活随笔為你收集整理的mysql 平均月份_Mysql按月份统计和按时段统计SQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。