Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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

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,我一直在浏览论坛,我看到了大多数答案 限制,我只是想知道如何无限制地返回最频繁的值。示例:您不知道有多少变量具有最高值,也不知道最高值。但您希望显示所有具有最高值的变量 到目前为止,我的代码是 SELECT b.column1, b.column2, count(a.column1) FROM alphabet a LEFT JOIN book b ON a.column1= b.column1 GROUP BY a.column1 ORDER BY count(a.column1) desc;

我一直在浏览论坛,我看到了大多数答案 限制,我只是想知道如何无限制地返回最频繁的值。示例:您不知道有多少变量具有最高值,也不知道最高值。但您希望显示所有具有最高值的变量

到目前为止,我的代码是

SELECT b.column1, b.column2, count(a.column1)
FROM alphabet a
LEFT JOIN book b ON a.column1= b.column1
GROUP BY a.column1
ORDER BY count(a.column1) desc;

有没有一种方法可以在不使用限制的情况下返回最频繁的值?

解决此类问题的一般模式是将一个值(聚合值或非聚合值)与子查询中选择的最大值进行比较。例如,以下查询应适用于您:

SELECT b.column1, count(a.column1)
FROM alphabet a
LEFT JOIN book b ON a.column1= b.column1
GROUP BY b.column1
having count(a.column1) = (select max(cnt) from (
   select count(a2.column1) as cnt
   from  alphabet a2
   group by a2.column1))

该分组依据无效。常规GROUP BY规则说:“如果指定了GROUP BY子句,则SELECT列表中的每个列引用必须标识一个分组列或是一个set函数的参数。”您使用的是哪个dbms?@jarlh SQLiteStudioIt似乎不起作用,在“having count”中出现错误但是我得到的是,sqlite不支持带有子查询的
max
,也不支持量词
ALL
。但是,
select max(cnt)from(select count(*)as cnt…)。相应地修改了答案。