Sql 显示计数最少的数据

Sql 显示计数最少的数据,sql,oracle,Sql,Oracle,我想显示度假村的详细信息,如度假村名称和拥有最少卧室数量的城镇名称。我试过这段代码- select r.resortname, r.townname from resort r, cabin c where r.resortid = c.resortid and c.bedroomcount = (select min(sum(c1.bedroomcount)) from cabin c1 group by c1.resortid) order by r.resortname; 但是这段代

我想显示度假村的详细信息,如度假村名称和拥有最少卧室数量的城镇名称。我试过这段代码-

select r.resortname, r.townname
from resort r, cabin c 
where r.resortid = c.resortid
and c.bedroomcount = (select min(sum(c1.bedroomcount)) from cabin c1 group by c1.resortid)
order by r.resortname; 
但是这段代码没有返回任何输出或错误。 请帮忙,提前谢谢!:

我找到了正确的答案-

select r.resortname, r.townname
from resort r, cabin c
where r.resortid = c.resortid
and c.bedroomcount = (select min(min(bedroomcount)) from cabin c1 group by c1.bedroomcount)
order by r.resortname;

谢谢你的帮助

使用窗口函数。并加入:


要显示度假村,请从resorts表中选择。您想要的是卧室数量最少的,所以应用适当的where子句

select resortname, townname
from resort
where resortid in
(
  select resortid
  from cabin
  group by resortid
  order by sum(bedroomcount)
  fetch first row with ties
);

FETCH FIRST子句从Oracle 12c开始可用。

此代码与下面的代码类似,从度假区r选择r.RETRESTNAME,r.townname在r.RETRESTID=c.RETRESTID上加入CAB c,其中c.bedroomcount在select minbedroomcount中按c1从CAB c1组按c1.RETRESTID按r.RETRESTID顺序按r.RETRESTNAME;它输出所有度假村名称,但只应输出一个值最小的度假村名称。@yaminir。r.bedroomcount=c.min_bedroomcount应该只选择最小卧室数。r表中没有卧室数,它只存在于c表中。所以它显示了一个错误。@yaminir。这是有道理的。我修正了答案。
select resortname, townname
from resort
where resortid in
(
  select resortid
  from cabin
  group by resortid
  order by sum(bedroomcount)
  fetch first row with ties
);