MySQL 滑動訂單問題
滑動訂單問題是指為每個月返回上一年度(季度或月度等)的滑動訂單數。
即:某個月份N,返回從(N-11)月到N月的訂單總數。(架設月份序列中不存在間斷)。
首先建立一個測試表
再插入一些資料
最後返回的結果集應該為:
解決方案
該查詢對monthly_orders表進行自聯接,a表用做下邊界(from_month),b表用做上邊界(to_month)。
聯接條件為:date_add(a.ordermonth, interval 11 month) = b.ordermonth。
例如2010年2月將匹配2011年1月
完成此次自聯接操作之後,需要對訂單進行統計,這時需要在進行一次自聯接,得到範圍內每個月的訂單數量,因此聯接條件為c.ordermonth between a.ordermonth and b.ordermonth 。
按照上述方法,我們還可以統計每個季度訂單的詳情,作為環比和同比增長的比較依據。
即
解決方案:
即:某個月份N,返回從(N-11)月到N月的訂單總數。(架設月份序列中不存在間斷)。
首先建立一個測試表
-
create table monthly_orders(
-
ordermonth date,
-
ordernum int unsigned,
- primary key(ordermonth));
再插入一些資料
-
insert into monthly_orders select '2010-02-01',23;
-
insert into monthly_orders select '2010-03-01',26;
-
insert into monthly_orders select '2010-04-01',24;
-
insert into monthly_orders select '2010-05-01',27;
-
insert into monthly_orders select '2010-06-01',26;
-
insert into monthly_orders select '2010-07-01',32;
-
insert into monthly_orders select '2010-08-01',34;
-
insert into monthly_orders select '2010-09-01',30;
-
insert into monthly_orders select '2010-10-01',31;
-
insert into monthly_orders select '2010-11-01',32;
-
insert into monthly_orders select '2010-12-01',33;
-
insert into monthly_orders select '2011-01-01',31;
-
insert into monthly_orders select '2011-02-01',34;
-
insert into monthly_orders select '2011-03-01',34;
-
insert into monthly_orders select '2011-04-01',38;
-
insert into monthly_orders select '2011-05-01',39;
-
insert into monthly_orders select '2011-06-01',35;
-
insert into monthly_orders select '2011-07-01',49;
-
insert into monthly_orders select '2011-08-01',56;
-
insert into monthly_orders select '2011-09-01',55;
-
insert into monthly_orders select '2011-10-01',74;
-
insert into monthly_orders select '2011-11-01',75;
- insert into monthly_orders select '2011-12-01',14;
最後返回的結果集應該為:
解決方案
-
select
-
date_format(a.ordermonth, '%Y-%m') as from_month,
-
date_format(b.ordermonth, '%Y-%m') as to_month,
-
sum(c.ordernum) as orders
-
from monthly_orders a
-
join monthly_orders b
-
on date_add(a.ordermonth, interval 11 month) = b.ordermonth
-
join monthly_orders c
-
on c.ordermonth between a.ordermonth and b.ordermonth
- group by a.ordermonth,b.ordermonth;
該查詢對monthly_orders表進行自聯接,a表用做下邊界(from_month),b表用做上邊界(to_month)。
聯接條件為:date_add(a.ordermonth, interval 11 month) = b.ordermonth。
例如2010年2月將匹配2011年1月
完成此次自聯接操作之後,需要對訂單進行統計,這時需要在進行一次自聯接,得到範圍內每個月的訂單數量,因此聯接條件為c.ordermonth between a.ordermonth and b.ordermonth 。
按照上述方法,我們還可以統計每個季度訂單的詳情,作為環比和同比增長的比較依據。
即
解決方案:
-
select
-
date_format(a.ordermonth,\'%Y-%m\') as from_month,
-
date_format(b.ordermonth,\'%Y-%m\') as to_month,
-
sum(c.ordernum) as orders
-
from monthly_orders a
-
join monthly_orders b
-
on date_add(a.ordermonth, interval 2 month) = b.ordermonth
-
and month(a.ordermonth) % 3 = 1
-
join monthly_orders c
-
on c.ordermonth between a.ordermonth and b.ordermonth
- group by a.ordermonth,b.ordermonth;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1248568/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微信小程式-能左右滑動的訂單列表微信小程式
- SwipeMenuRecyclerView庫不能滑動問題View
- SlideMenu遮蔽滑動問題IDE
- UIPikerView 省市區三聯滑動,解決滑動崩潰問題UIView
- 【OracleEBS】 訂單暫掛問題sql解決OracleSQL
- 關於彈窗的內部滑動穿透底層頁面的滑動的問題穿透
- 蘋果容器超出內容overflow滑動卡頓問題蘋果
- 例子:酒店列表滑動記憶體增大的問題記憶體
- 解決ScrollView巢狀RecyclerView滑動卡頓問題View巢狀
- PtrClassicFrameLayout與viewpager橫向滑動衝突的問題Viewpager
- iOS Kingdom — 滑動選單iOS
- 微信小程式:選單滑動微信小程式
- jQuery滑動導航選單jQuery
- PHP+Redis解決實際問題一:訂單限流PHPRedis
- (有圖)仿QQ側滑選單:RecyclerView側滑選單,長按拖拽,滑動刪除View
- 如何解決快應用頁面滑動卡頓問題
- ScrollView巢狀RecyclerView滑動衝突相關問題View巢狀
- 【開發問題記錄①】關於滑動CollectionView時ContentSize變化的問題View
- 關於SAP生產訂單操作中的問題處理。
- SpringBoot mysql驅動問題Spring BootMySql
- 聊天平臺原始碼,簡單使用 禁止滑動和設定滑動方向原始碼
- 關於購物車下單-訂單跳轉及返回問題解決方案
- 圓形可滑動選單(可以動態新增選單項)
- CollectionView 單個選項卡的滑動View
- 用ListView簡單實現滑動列表View
- Java自動生成訂單序列號Java
- mac下mysql無法啟動問題MacMySql
- 微信支付訂單、退款訂單、轉款訂單的查詢
- mysql啟動不了,mysql連線不上,問題排查MySql
- web前端仿手機左右滑動(手滑+自動滑動)Web前端
- 訂單系統中併發問題和鎖機制的探討
- ERP系統訂單管理的一些要點問題(轉)
- MySQL 問題MySql
- 解決antdesign頁面滑動時下拉框漂浮的問題
- 解決 ScrollView 巢狀 RecyclerView 時,慣性滑動失效的問題View巢狀
- 解決ScrollView巢狀ViewPager出現的滑動衝突問題巢狀Viewpager
- 重寫ListView解決ListView內部ViewPaper滑動事件衝突問題View事件
- (十)如果實現滑動展示選單效果