gpt4 book ai didi

sql - 不使用限制的最高出现次数

转载 作者:行者123 更新时间:2023-12-03 18:29:02 25 4
gpt4 key购买 nike

我搜索了这个主题很多,我让它工作,所以它的出现次数最多,但我想让 SQL 抓取任意数量(如果有多个值的数量最高)。
现在我有:

SELECT houses.cars, COUNT(houses.cars) as Numb 
FROM houses
Group By houses.cars Order By Numb Desc
Limit 1;

它返回最高的出现次数,但例如,如果有 2 种类型的汽车出现 8 次,我希望它同时返回它们。

我知道当您想要持续时间(整数)时的最高值时,您就是这样做的:
SELECT times.duration AS 'Hour', 
FROM times
WHERE times.duration >= (SELECT MAX(times.duration)
FROM times);

但是每当我尝试用 COUNT 做类似的逻辑时,它都会出现语法错误。

最佳答案

要保持联系,您可以使用 having带有子查询的子句:

fiddle : http://www.sqlfiddle.com/#!7/ce7ec/6/0

select cars,
count(*)
from houses
group by cars
having count(*) = (select max(num_occur)
from (select cars,
count(*) as num_occur
from houses
group by cars))

如果您使用的是 Oracle 或 SQL Server,您可以在没有子查询的情况下执行此操作:

使用 Oracle 12c 的这样一个解决方案:
select cars,
count(*)
from houses
group by cars
order by 2 desc
fetch first 1 rows with ties;

使用 SQL Server 的此类解决方案:
select top(1) with ties
cars,
count(*)
from houses
group by cars
order by 2 desc;

关于sql - 不使用限制的最高出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32937341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com