【问题标题】:Select rows with maximum value from select result从选择结果中选择具有最大值的行
【发布时间】:2017-11-08 08:22:23
【问题描述】:

我想从以下选择中选择具有最大值的行,但是子查询中的结果表名称错误(select max(result.Sum) from result):

select *
from 
(select sum(Rooms.n_seats) as 'Sum', DepKinds.title
from Rooms join Departments on Rooms.department = Departments.id
join DepKinds on Departments.kind = DepKinds.id group by DepKinds.title) result where result.Sum = (select max(result.Sum) from result);

那么如何为这些总和选择最大总和和标题?

【问题讨论】:

    标签: sql select


    【解决方案1】:

    不能在子查询中使用FROM 后面的result 别名。尝试使用HAVING

    select sum(Rooms.n_seats) as 'Sum', DepKinds.title
    from Rooms 
    join Departments on Rooms.department = Departments.id
    join DepKinds on Departments.kind = DepKinds.id 
    group by DepKinds.title
    having sum(Rooms.n_seats) >= all
    (
       select sum(Rooms.n_seats) 
       from Rooms 
       join Departments on Rooms.department = Departments.id
       join DepKinds on Departments.kind = DepKinds.id 
       group by DepKinds.title   
    )
    

    这将返回 all DepKinds.title 具有最大席位数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-16
      • 2021-07-23
      • 2021-08-10
      • 2021-05-19
      • 2015-01-14
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多