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
Sqlite 在第二个select变量上使用DISTINCT_Sqlite - Fatal编程技术网

Sqlite 在第二个select变量上使用DISTINCT

Sqlite 在第二个select变量上使用DISTINCT,sqlite,Sqlite,我有以下有效的代码: select distinct count(b), a from test group by a order by count(b) DESC limit 10; 但我希望输出实际显示a,countb,而不是切换顺序。不幸的是 select a, distinct count(b) from test group by a order by count(b) DESC limit 10; 不起作用。我知道一个小问题,在另一个程序中不断更改顺序是一件痛苦的事情

我有以下有效的代码:

   select distinct count(b), a from test group by a order by count(b) DESC limit 10;
但我希望输出实际显示a,countb,而不是切换顺序。不幸的是

   select a, distinct count(b) from test group by a order by count(b) DESC limit 10;

不起作用。我知道一个小问题,在另一个程序中不断更改顺序是一件痛苦的事情。

实际上你必须理解这一点 选择distinct countb,这是countb、a的一种不同的表示,而不仅仅是countb

这就是为什么第二个不起作用的原因,您不能在列的子集上使用distinct

为了更好地理解它:DISTINCT在所有行的值都相同时给出一行, 如果您只想在countb上执行此操作,并且两行的countb值相同,那么应该显示a的哪个值

这就是为什么不可能在列的子集上使用distinct

为每个countb和a的任何值获取一个值 我不确定,但你可以试试这个:


从测试组中按顺序选择不同的计数b从测试组中按计数b描述组按计数b选择最大值

Ahh我明白了。在这种情况下,显示a的哪个值对我来说并不重要,因为如果两行的countb相等,那么a将非常相似。此数据集是两个相似数据集的组合。在这种情况下,您只需按countb DESC limit 10的顺序从测试组中选择不同的a,countb;这不起作用,因为它显示两个a的a值相似,而不是相等,如果计数相同。我只想输出两行中的一行,不管是哪一行。我编辑了我的答案,不确定,也许不是最佳方式,但你可以试试