MySQL Count и сортировка строк - PullRequest
2 голосов
/ 10 мая 2010

Каков наилучший способ подсчета и сортировки столбца данных в MySQL и вывода результатов в виде списка HTML?

Пример данных:

**Type**
Train
Car
Car
Car
Bus
Bus

Вывод должен быть отсортирован по наибольшему количеству элементов:

 - car(3)
 - bus(2)
 - train (1)

Кроме того, это плохая практика на большом столе?

Ответы [ 3 ]

7 голосов
/ 10 мая 2010

Попробуйте этот запрос:

select type, count(*) from vehicles group by type order by count(*) desc

В отношении:

Кроме того, это плохая практика на большом столе?

Это зависит от вашего движка стола. MyISAM очень быстр с такими агрегатными функциями, как count(*). Однако InnoDB должен сканировать таблицу и считать каждый раз. Поэтому я бы не рекомендовал count(*) использовать большую таблицу InnoDB. Вместо этого вы можете хранить переменную count в мета-таблице и обновлять ее только при вставках / обновлениях.

3 голосов
/ 10 мая 2010
select type, COUNT(*) from data group by type
1 голос
/ 01 апреля 2016

Попробуйте этот запрос:

select t.type, count(t.type) as typecount from type as t group by type order by typecount desc

Надеюсь помочь этому запросу ... !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...