2013-04-14 2 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 ㇱ, нет ее не суммы, просто мне нужен список строк, который включает в себя имя в алфавитном порядке с теми, у которых есть max count_value. событие, если у меня есть ограничение 5 или 50 –

+0

Тогда зачем их группировать? –

ответ

0

Это выведет 10 строк с наивысшим count_values, в порядке 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, дубликаты записей опущены. Я думаю, это поможет мне. Позвольте мне еще раз проверить. –

Смежные вопросы