你有两个关系 派对(身份证,姓名)和代表(身份证,参与方) 如果id是主键,则Delegate中的属性方是外键,定义如下:
party int references Party
=>这是一个C-CM关系。 [C:代表 C 有一个党,CM:党 C 有 M 多名代表]
现在你怎么能用SQL来证明拥有最多代表的派对? [不使用子查询或黑客像订购然后切割]
我只为一个实体找到了以下解决方案:http://www.xaprb.com/blog/2007/03/14/how-to-find-the-max-row-per-group-in-sql-without-subqueries/
我的方法就像
select p.name
from Party p inner join Delegate d
on p.id = d.party
group by p.name
having count(d.id) = MAXVALUE
MAXVALUE是我不知道的东西
答案 0 :(得分:0)
我建议您使用限制
select p.name,count(*) num
from Party p, Delegate d
where p.id = d.party
group by p.name
order by num
limit 1;
或临时表选择
select p.name, max(tot)
from ( p.name, count(* ) as tot
from Party p, Delegate d
where p.id = d.party
group by p.name ) as t;