Re: [SQL ] Group by 完只有某些值相加的方法

看板Database (資料庫)作者 (ken218)時間5年前 (2019/12/18 17:35), 編輯推噓0(001)
留言1則, 1人參與, 5年前最新討論串3/3 (看更多)
這個也可以用 pivot 解, 不過竅門一樣, 要先把帳號改掉 select * from ( select FuncName, IIF(UserName = 'guest', 'guest', 'member') typ from tb1 ) S pivot ( count(typ) for typ in (guest, member) ) pvt ※ 引述《cutekid (可愛小孩子)》之銘言: : https://imgur.com/a/6TEnMEw : -- 測資 : ;with tb1 as ( : select * : from ( : values : ('A','Jordan'),('A','guest'),('A','guest'), : ('B','Jordan'),('B','Kobe'), ('B','James'),('B','guest') : )t(FuncName,UserName) : ) : -- 結果 : select FuncName, : 非會員 = count(case when UserName = 'guest'then 1 end), : 會員 = count(case when UserName != 'guest'then 1 end) : from tb1 : group by FuncName : ※ 引述《paul09253336 (paulma)》之銘言: : : (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) : : 資料庫名稱:MYSQL : : 資料庫版本:2014 : : 內容/問題描述: : : 大家好,我現在有一張表會記錄不同function被呼叫的次數、呼叫的時間、function名稱 : : ,同時有個欄位(UserName)會記錄他是不是會員,如果不是會記成“guest”,是的話 : : 則會記錄他的帳號 : : ,現在想要去計算出每個月不同function的使用次數,並列出非會員及會員的使用次數 : : 我現在用 : : group by “function name”,“date”後,在某個group中UserName會有“guest”跟不 : : 同的帳號的情況 : : 想請問各位高手,我要怎麼去把guest跟不同帳號分開去做加總,同時select出來 : : 結果的欄位大概長這樣 : : funcName,Count-非會員,Count-會員, : : 我試過在group條件加上UserName,但這樣會讓會員跟非會員的結果分開成兩列,這不是我 : : 想要的結果,現在需要的是在同一列上同時有非會員,會員,的結果 : : 請各位高手能指點方向,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 3.8.111.149 (英國) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1576661705.A.A3F.html

12/18 17:39, 5年前 , 1F
wait, MySQL doesn't have Pivot. Sorry :(
12/18 17:39, 1F
文章代碼(AID): #1T-VB9e_ (Database)
文章代碼(AID): #1T-VB9e_ (Database)