Re: [SQL ] mysql語法請教
※ 引述《kevin524 (等待的天空)》之銘言:
: 請問一下
: 假如我有一個table
: 要依據欄位進行不同值的的count計算
: 最後依據計算出來的key值做合併
: 要如何做到?謝謝!!
: 如table有4個欄位
: 時間 | 節次 | 參與上課 | 學號
: 2007-5-15 2 1 abc
: 2007-5-15 2 0 cde
: 2007-5-15 3 1 dfg
: 2007-5-15 3 1 ekj
: 2007-5-16 3 0 kfj
: 2007-5-16 3 0 qwe
: 有去上課為1,沒去則否
: 我想利用時間和節次做分組來計算
: 當天每個節次上課人數以及缺課人數計算
: 最後是以時間和節次為分類
: 如
: 時間 | 節次 | 上課人數 | 缺席人數
: 2007-5-15 2 2 1
: 2007-5-15 3 3 0
: 2007-5-16 3 2 2
: 以上結果要怎麼下語法才能做到,謝謝!!
MySQL 中好像沒有類似 ORACLE的 decode 或是 case 的"函式"
若支援這樣的函式 就可以這麼下
select 時間 ,
節次 ,
count(參與上課) ,
sum(decode(參與上課 , 1 , 0 ,1 )
from TABLE
group by 時間 , 節次
或是
select 時間 ,
節次 ,
count(參與上課) ,
sum( case WHEN 參與上課=1
THEN 0
else 1
end
)
from TABLE
group by 時間 , 節次
不過由於 參與上課 VALUE 為 1 & 0
所以說 並不需使用 case 或 decode 這麼麻煩
便可以得到上課的人數
select 時間 ,
節次 ,
count(參與上課) ,
sum(參與上課)
from TABLE
group by 時間 , 節次
再改一下
select 時間 ,
節次 ,
count(參與上課) ,
count(參與上課)-sum(參與上課)
from TABLE
group by 時間 , 節次
這樣就是缺席人數啦
幸好那個欄位的值是 0 與 1
( ′▽`)y▂ξ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.145.230.2
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章