作者MugenPower (无限MUGEN)
看板Database
标题Re: [SQL ] mysql语法请教
时间Tue May 15 12:25:51 2007
※ 引述《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