作者danielguo (Daniel Guo)
看板Database
標題Re: [SQL ] 交集問題
時間Mon Oct 31 03:10:52 2011
※ 引述《odj (***ˋ( ̄  ̄)》之銘言:
: 最近在寫一個交集的語法,覺得自己寫的不是很好,因此想請教一下是否有更好的寫法
: 我有一個資料表(table1)如下:
: id w_id server
: 1 3 A
: 2 3 B
: 3 4 B
: 4 5 B
: 5 3 C
: 6 4 C
: 7 5 C
: 今天我想取得的是ABC三台server共有的w_id值,以上表來說,就是3
計算每個 w_id 有幾個 server
(假設 (w_id, server) 會重複, 不重複用 COUNT(*) 便可)
SELECT `w_id`, COUNT(DISTINCT `server`) AS `count`
FROM `table1`
WHERE `server` IN ('A', 'B', 'C')
GROUP BY `w_id`
HAVING `count` = 3;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 24.19.233.135
推 odj:可能我表達的不好讓你誤會了 我不是要W_ID值有幾個SERVER 10/31 08:12
→ odj:而是像A有的w_id值是3 B有3,4,5 C有3,4,5 那ABC三者都有的 10/31 08:14
推 odj:的w_id值就是3 我想要抓出的是這個值 10/31 08:18
推 odj:抱歉了 還是感謝你的幫忙 10/31 08:22
推 cutecpu:推 d 大解法 10/31 23:08