Sql 不使用限制的最大出现次数
我搜索了很多这个主题,我让它工作,所以它获得了最高的出现次数,但我想让SQL抓取任意数量(如果有多个值具有最高数量)。 现在我有:Sql 不使用限制的最大出现次数,sql,sqlite,Sql,Sqlite,我搜索了很多这个主题,我让它工作,所以它获得了最高的出现次数,但我想让SQL抓取任意数量(如果有多个值具有最高数量)。 现在我有: SELECT houses.cars, COUNT(houses.cars) as Numb FROM houses Group By houses.cars Order By Numb Desc Limit 1; 它返回最多的出现次数,但例如,如果有两种类型的汽车出现8次,我希望它同时返回这两种情况 我知道这就是当你想要最大值时,当它们是持续时间(整数)时
SELECT houses.cars, COUNT(houses.cars) as Numb
FROM houses
Group By houses.cars Order By Numb Desc
Limit 1;
它返回最多的出现次数,但例如,如果有两种类型的汽车出现8次,我希望它同时返回这两种情况
我知道这就是当你想要最大值时,当它们是持续时间(整数)时,你是如何做到的:
但是,每当我尝试对COUNT执行类似的逻辑时,它都会出现语法错误。要保持联系,您可以使用带有子查询的
having
子句:
小提琴:
如果您使用的是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;
要保持联系,可以将
having
子句与子查询一起使用:
小提琴:
如果您使用的是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;
有没有办法不使用子查询?@Amee不使用sqllite。在其他数据库(如Oracle和SQL Server)中,您有带ties的
选项,该选项允许您在不使用子查询的情况下执行此操作。有没有办法不使用子查询?@Amee不使用sqllite。在其他数据库(如Oracle和SQL Server)中,您可以使用with ties
选项,无需子查询即可完成此操作。