iT邦幫忙

0

[Mysql 語法]同表格計算欄位數量

目前select出來的table:

http://ithelp.ithome.com.tw/upload/images/20161209/20103702LzKJqpTFCj.png

想要變成
http://ithelp.ithome.com.tw/upload/images/20161209/20103702QhdfbencH6.png

知道可以直接用count計算出席、請假...次數
但是還要再計算每個人的出席次數
不知道要怎麼select出來..

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

3
badbayz
iT邦新手 4 級 ‧ 2016-12-10 14:10:18
最佳解答

MySQL

SELECT 名字,
SUM(CASE WHEN 出席狀態 = '出席' THEN 1 ELSE 0 END) 出席次數,
SUM(CASE WHEN 出席狀態 = '請假' THEN 1 ELSE 0 END) 請假次數,
SUM(CASE WHEN 出席狀態 = '曠課' THEN 1 ELSE 0 END) 曠課次數
FROM `table` GROUP BY 名字;
0
做工仔人!
iT邦大師 1 級 ‧ 2016-12-09 17:43:11

我用ms-sql 的語法寫,請自行轉為mysql 的語法.

SELECT a.姓名,
b.出席次數 , 
c.請假次數 ,
d.曠課次數
from (SELECT 姓名 from tablename group by 姓名) a left join (select 姓名,count(*) 出席次數 from tablename where 出狀態='出席' group by 姓名) b on a.姓名=b.姓名
   left join (select 姓名,count(*) 請假次數 from tablename where 出狀態='請假' group by 姓名) c on a.姓名=c.姓名 
   left join (select 姓名,count(*) 曠課次數 from tablename where 出狀態='曠課' group by 姓名) d on a.姓名=d.姓名

我要發表回答

立即登入回答