Re: [SQL ] 找出限定條件中發生重複的id

看板Database作者 (Carael Macchiato)時間12年前 (2012/02/24 11:32), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《TeemingVoid (TeemingVoid)》之銘言: : ※ 引述《CxMacchi (Carael Macchiato)》之銘言: : : 假設現在有一張table是用來儲存team裡的人某天接受測驗不及格的項目與其他詳細內容 : : id 人 項目 日期 ... : : -------------------------- : : 1 A 跳遠 01/02 ... : : 2 B 短跑 02/15 : : 3 E 跳高 02/17 : : 4 B 跳遠 02/17 : : 5 C 游泳 02/20 : : 6 A 短跑 02/25 : : 如果現在我想知道在限定日期內A和B(或兩人以上)同時不及格項目的ID : : 像是要求一二月 就會列出像 : : 跳遠 - 1,4 : : 短跑 - 2,6 : : 二月之後就會改列 : : 短跑 - 2,6 抱歉我的說明有點差,舉例也不太洽當,沒有涵蓋到我希望考慮到的情形 @@ 我希望table中雖然有A B C D E ...很多人的資料 但在這次篩選中只專注 A B (可擴充成任意指定若干人)同時都有失敗的狀況 當a發生兩次b卻沒有發生是必須排除的 如果把故事說清楚一點的話是... 測驗總共包含了(跳遠、短跑、跳高、游泳)這些項目, 所有人每天會對所有的測試項目測試,表中會紀錄大家失敗的時間與項目, 一天可能不只會失敗一項,也會發生很多人在今天失誤的狀況 現在想針對A和B這兩個人瞭解 期間內他們有哪些項目產生同時失敗的狀況並列出id id 人 項目 日期 ... -------------------------- 1 A 跳遠 01/02 ... 2 B 短跑 02/15 3 E 跳高 02/17 4 B 跳遠 02/17 5 C 游泳 02/20 6 A 短跑 02/25 7 A 跳遠 02/25 8 D 短跑 02/25 : 1. 先用項目分組,以having找出哪些項目日期區間不及格人數 >= 2 如果這麼作當出現 7 C 游泳 02/27這筆資料的時候 游泳也會被列入篩選條件中是嗎? @@ : 2. 再列出日期區間內的測試明細,條件是上述 1. 的那些項目。 -- 《Sometimes Love Just Ain't Enough》 Yan-zi "But there's a danger in loving somebody too much. And its sad when you know it's your heart you can't trust. There's a reason why people don't stay where they are. Baby sometimes love just ain't enough." -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.80.89.18 ※ 編輯: CxMacchi 來自: 210.80.89.18 (02/24 11:33)

02/24 11:39, , 1F
OK,目前where已有日期區間,將A、B也寫進where條件
02/24 11:39, 1F

02/24 11:40, , 2F
... and pid in ('A', 'B')
02/24 11:40, 2F

02/24 11:44, , 3F
謝謝你! 我試試看!
02/24 11:44, 3F

02/24 12:25, , 4F
不行耶,當B有兩次以上的fail卻沒發生在A的時候,也被
02/24 12:25, 4F

02/24 12:25, , 5F
count進去了,我再試看看@@
02/24 12:25, 5F

02/24 21:40, , 6F
把count(*)改成count(distinct pid)
02/24 21:40, 6F
文章代碼(AID): #1FHmJJrV (Database)
文章代碼(AID): #1FHmJJrV (Database)