SQL Count 多於一個 column

2012-11-25 8:34 am
假設我有以下的table
name e1 e2 e3
Peter 1 2 2
David 3 1 2
Cindy 6 1 4
Kitty 2 1 2


我應該用甚麼指令去找出e1,e2,e3中共有多少個2嗎?
(output should be 5)
更新1:

Danny Honda : 試了不可行

回答 (3)

2012-11-26 3:50 am
✔ 最佳答案
count只能對單一個field數。即數e1有幾個個2。
指令係 select count(*) from table where e1=2,
再加e2,即係select count(*) from table where e2=2,
再加e3,即係select count(*) from table where e3=2,
但似乎沒有指令可以相加。
方法一係以程式碼把三個得出數字相加。
Mm...
要把相加在sql完成,也許可以先把三個field組成一個單一table,即
select name,e1 as num from table
union
select name,e2 as num from table
union
select name,e3 as num from table
,然後用先前select count(*) from (select ....) where num=2
不過sql未必接受呢個句式(你可以試一下)。
要變化的話,可以將union那句化成一個view。那麼select count(*) from MyView where num=2一定得。
如果你用的sql沒有view,你可以把第一句結果存到一個temp table。
如果也不支援temp table就‧‧‧‧‧
另一個注意係效率低,即係如果record多會好慢。
2012-11-25 7:02 pm
Try to use a combination of sum, if and +.
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
2012-11-25 9:25 am
Try,

select count(1) from (select * from table where e1 = 2 or e2 = 2 or e3 = 2)
參考: myself


收錄日期: 2021-04-26 11:32:07
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20121125000051KK00019

檢視 Wayback Machine 備份