2013-12-10 3 views
0

Предположим, у меня есть таблица с именами животных с столбцами с именем «id» и «name» и «type». Последний столбец заполнен коровы, курицы, лошади, свиньи, слона, бегемота и т.д.SQL Count строк и отображения в порядке

Что я хочу запрос, который подсчитывает количество типов и отображает их в порядке, как это ...

курица 45
коров 40
лошадь 5
и т.д ...

Теперь я только хочу показать 10 с наибольшим количеством. Я использую этот запрос ...

$result = mysql_query("SELECT * FROM animals ORDER BY id DESC LIMIT 0, 10"); 

while($row = mysql_fetch_array($result)) 
{ 

echo "<tr><td>" . $row['type']. "</td><td align=\"right\"></td></tr>"; 
} 

Код выше показывает только типы, как

лошадь
курица
курица
корова
курица
корова
корова
лошадь
и т.д. ...

Я не знаю, как использовать счетчик и сортировать в наивысшем значении.

+0

возможно дублировать http://stackoverflow.com/questions/12789396/how -to-get-multiple-counts-with-one-sql-query – Naeem

ответ

1

Пожалуйста, попробуйте следующий запрос:

Select type, count(type) as type_count FROM animals GROUP BY type ORDER BY type_count desc LIMIT 0, 10 
+0

избил меня! – AdRock

+0

Спасибо, что сработал !! – user2959441

0

попробовать это:

select name, count(name) as total from animals 
group by name order by total desc limit 10 
0

Try:

select 
    top 10 type, Count(*) 
from 
    animals 
group by 
    type 
order by 
    count(*) desc,type 
Смежные вопросы