日期:2014-05-16  浏览次数:20651 次

再问mysql表中信息统计
我有个mysql的表,表定义如下:
create table a (
  r1 TEXT,
  r2 TEXT );
现在想统计如下信息:

若有两个记录,其r1列值相同,r2列值不同,我们就成为相应的r2列值的构成了r2对,有可能有一个r2对,其每构成一次r2对时对应的r1列值分别为(aaa, bbb, ccc, ddd),就认为对应r1值相同的该r2的值为4.
还有可能有另一个r2对,其每构成一次r2对的时对应的r1列值分别为(eee, fff, ggg, hhh),还有可能有另一个r2对,其每构成一次r2对的时候对应的r1列值分别为(www, vvv, jjj, kkk)
那么,我们查询的时候,对应的r1列值相同的成对r2的值为4的r2对有3个。
通过在sql语句中设置值为4,返回结果3. 如何实现这样的查询呢?

------解决方案--------------------
你把名称修改一下嘛
select count(*) from (
select t1.r2,t2.r2 as r3 from test t1 inner join test t2 on t1.r1=t2.r1 and t1.r2<t2.r2 group by t1.r2,r3 having count(*)=3) test ;