2013-04-14 57 views
0

我需要一个MySQL查询的解决方案,它基本上是由域取决于两个顺序,下面是这种情况,列表名称的字母顺序在递减顺序计数

我有一个表,说abc与领域,如,

auto_id name count_values 

1  html  10 
2  css  29 
3  js  65 
4  jquery  3 
5  html5  9 
6  asp  58 
7  php  34 
8  xcode  6 
.... 

等(超过100条记录)

所以我需要的结果,基本上列出所有count_values名的基础上,
name > alphabetically + count_values > maximum

我试图与

Select 
    distinct name, 
    count_values 
from 
    abc 
where 
    count_values > 0 
group by 
    name 
order by 
    name asc, count_values desc 
limit 0, 10; 

但结果是显示按字母顺序排列的名字在那里,因为我有Xcode的数据行一些大的数量是不是在列表中。

+0

当你分组时,你是否也需要计算那些count_values?或者只需要任何1个记录任何1个名字 –

+0

@HankyPankyㇱ,没有它的总和,只是我需要包含名称的字母顺序与最大count_value的行的列表。事件,如果我有限制它5或50 –

+0

然后为什么组他们呢? –

回答

0

这将输出最高count_values的10行,依次为name

SELECT * 
FROM (SELECT name, MAX(count_values) count_values 
     FROM abc 
     WHERE count_values > 0 
     GROUP BY name 
     ORDER BY count_values DESC 
     LIMIT 10) x 
ORDER BY name 
+0

但是,如果他们填写标准,这可以显示重复的名称,不是吗? –

+0

是的..我得到重复的行.. –

+0

我已经添加了GROUP BY,重复记录被省略。我认为它会帮助我。让我再验证一次。 –