台灣最大程式設計社群網站
線上人數
1818
 
會員總數:241132
討論主題:186802
歡迎您免費加入會員
討論區列表 >> MySQL >> GROUP BY可以多重分組嗎?
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
GROUP BY可以多重分組嗎?
價值 : 10 QP  點閱數:161 回應數:5

樓主

Brain Wang
門外漢
0 9
107 7
發送站內信

假設資料如下:
date, mode, val
2017-10-01, 1, 1
2017-10-01, 2, 1
2017-10-01, 1, 1
2017-10-02, 2, 2
2017-10-02, 1, 2
2017-10-02, 2, 2

想要結果:
date,mode=1的val總和,mode=2的val總和
2017-10-01,2,1
2017-10-02,2,4

SELECT date, SUM(val), SUM(val) FROM table GROUP BY date
如果把mode加在GROUP會變成兩列,請問那兩個SUM的指令該怎麼寫才能讓資料在同一列?

搜尋相關Tags的文章: [ GROUP ] ,
本篇文章發表於2017-11-08 00:01
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
我是不建議直接用SQL產生這樣的格式資料
如果可以,我會建議用SQL撈出資料,然後用軟體去處理格式

SQL直接產生的話應該要用JOIN之類的方式
例如:


最後,像date,table這類的單字最好不要直接拿來當表單和欄位名稱
本篇文章回覆於2017-11-08 09:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
迷路,不需要這麼複雜啦。

本篇文章回覆於2017-11-09 17:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
星空大,樓主想要的是將mode=1的val和與mode=2的val和,跟日期放在同一行
你提供的每天會有兩行資料,一行是mode=1的val和,另一行是mode=2的val和
所以我才會用這麼麻煩的寫法
本篇文章回覆於2017-11-10 10:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
那這樣就如下處理就好了


本篇文章回覆於2017-11-10 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
原來還有這種操作,學到了
本篇文章回覆於2017-11-10 15:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.