首页 > 解决方案 > 如何从查询中选择最大值?

问题描述

我正在尝试创建一个从 jpa 查询中获取最大值的查询

首先我有:

select count(se.idSecteur) from Site si left join Secteur se on si.idSite = se.idSite group by si.idSite

这个回报:

19
22
22
16
26
27
15
24
29
17
13
32
...

我想创建一个只有最大值的查询(此处为 32)

我尝试了类似的东西:

Select max(select count(se.idSecteur) from Site si left join Secteur se on si.idSite = se.idSite group by si.idSite) ...

但它没有用

任何建议表示赞赏!

标签: mysqlsqlhibernatejpa

解决方案


mysql 的一种简单方法是按 desc 或第一行排序

  select count(se.idSecteur) 
  from Site si 
  left join Secteur se on si.idSite = se.idSite 
  group by si.idSite
  order by  count(se.idSecteur)  DESC 
  LIMIT 1 

或者您可以将结果用作 max 的子查询

  select max(my_value)
  from (
    select count(se.idSecteur) my_value 
    from Site si 
    left join Secteur se on si.idSite = se.idSite 
    group by si.idSite
  ) t

推荐阅读