我有以下代码可以使用:
select distinct count(b), a from test group by a order by count(b) DESC limit 10;
但我希望输出实际显示a,count(b)代替(切换顺序)。不幸的是
select a, distinct count(b) from test group by a order by count(b) DESC limit 10;
不起作用。小问题我知道,在另一个程序中不断改变顺序只是一种痛苦。
答案 0 :(得分:3)
其实你必须明白这一点
select distinct count(b), a
表示count(b), a
的DISTINCT而不只是count(b)
这就是为什么第二个不起作用的原因,你不能在列的子集上有区别。
要了解更多:DISTINCT在行的所有值相同时给出一行,
如果你只想在count(b)
上执行此操作,并且2行具有count(b)
的相同值,则应显示a
的值?
这就是为什么不可能对列的子集进行区分
为每个count(b)
和a
的任意值获取一个值
我不确定,但你可以试试这个:
select max(a) from (select distinct count(b) from test group by a order by count(b) DESC ) GROUP BY count(b)