作者CxMacchi (Carael Macchiato)
看板Database
标题Re: [SQL ] 找出限定条件中发生重复的id
时间Fri Feb 24 11:32:32 2012
※ 引述《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)
1F:推 TeemingVoid:OK,目前where已有日期区间,将A、B也写进where条件 02/24 11:39
2F:→ TeemingVoid:... and pid in ('A', 'B') 02/24 11:40
3F:→ CxMacchi:谢谢你! 我试试看! 02/24 11:44
4F:→ CxMacchi:不行耶,当B有两次以上的fail却没发生在A的时候,也被 02/24 12:25
5F:→ CxMacchi:count进去了,我再试看看@@ 02/24 12:25
6F:→ braveht:把count(*)改成count(distinct pid) 02/24 21:40