作者cutecpu (可爱中央处理器)
看板Database
标题Re: [SQL ]计算群组的个数(count&group by)!!
时间Thu Sep 29 13:03:54 2011
SELECT T1.I1,T1.I2,T1.I3,T2.M,T2.CNT
FROM TABLE T1,(
SELECT M,COUNT(*) AS CNT
FROM TABLE
GROUP BY M
) T2
WHERE T1.M = T2.M AND T2.CNT > 3
GROUP BY I1,I2,I3,T2.M,T2.CNT
※ 引述《kidnaper (弗卡夏)》之铭言:
: 大家好~~小弟有一个语法想请各位帮我看看怎麽修改!!
: 我有一个表格
: TABLE
: I1 I2 I3 M
: A B C 0
: A B C 0
: A B J 0
: A J E 1
: A D J 1
: 我想要找各个M的个数(group by),最後要查询结果要包含I1~I3和M
: 结果
: I1 I2 I3 M count(*)
: A B C 0 3 <-- M中0总共出现三次
: A B J 0 3
: A J E 1 2
: A D J 1 2
: 这就像是M是几个不同的桶子 我把一堆东西投进去,东西中可能有相同重复的东西
: 但是相同的东西"都会投到相同的桶子"里,就会形成项TABLE这样的结果
: 然後呢我有兴趣的是 超过三个东西的桶子和里面的项目,
: 所以最後我要查询出的是 M号桶装载程度 装载的内容物有哪些
: 语法:
: 方法1
: select I1,I2,I3,M,count(M) from TABLE group by M <--无法执行~"~
: 方法2:
: select M,count(M) AS C into Table_2 in 'XXX.mdb' from TABLE group by M
: <--先计算出M桶的数量 并另存新档
: select Distinct TABLE.I1,TABLE.I2,TABLE.I3,TABLE.M,TABLE_2.C from TBALE,TABLE_2
: where TABLE.M=TABLE_2.M
: <--按照相同的M把刚刚另存的数量key进去!! 如果WHERE後在加上TABLE.C>3
: 就可以直接找出上述的结果!!
: 我想问的是!!方法2是我目前的解决办法!!但我想问问有没有更快的办法可以
: 产生一样的结果!!
: 谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.59.164.109
1F:推 kidnaper:大大 我感谢你!! ~~ 10/01 00:06