Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不使用限制的最大出现次数_Sql_Sqlite - Fatal编程技术网

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次,我希望它同时返回这两种情况 我知道这就是当你想要最大值时,当它们是持续时间(整数)时

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

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
选项,无需子查询即可完成此操作。