2016-10-19 2 views
-2

У меня есть таблица пользователя, в которой у каждой записи есть метка. Я хочу выбрать ярлык, который больше всего встречается в пользовательской таблице. Например:Выберите значение, где существует большинство значений SQL

  1. Имя пользователя Красный
  2. Имя пользователя Красный
  3. Имя пользователя Синий
  4. Имя пользователя Синий
  5. Имя пользователя Синий

Результат должен быть массив, содержащий: голубой, красный, а ярлык синий больше в таблице, чем красный. Как я могу получить этот результат?

+0

@ Fred-ii- Я не думаю, что схема db должна быть опубликована, и результат должен быть сохранен в массиве php. –

+1

* «Ошибка: неизвестная колонка« метка »в поле« список полей »* - Вы видите, что ответ Гордона, использующий' select label', основывался на том, что вы написали в своем вопросе: * «поскольку ярлык blue больше встречается в таблице» * , Тогда отсутствующий код CI/PHP делает все это намного труднее для людей, чтобы дать вам подходящее время суток. –

+0

@ Fred-ii- Да, это точно также моя структура таблицы базы данных. У меня есть ярлыки (синий, красный и т. Д.) И имена пользователей. –

ответ

3

Вы можете использовать group by и limit:

select label 
from t 
group by username 
order by count(*) desc 
limit 1; 

Это значение имеет имя в статистике. Он называется «режим».

+0

Ошибка: Неизвестная колонка 'label' in 'field list' –

+0

@ P.Yntema Вы сказали: «У каждой записи есть ярлык». Как называется столбец с меткой? Используйте это в запросе. – Barmar

+1

Разве это не «группа по метке», так как мы хотим, чтобы количество пользователей с одинаковой меткой? – Barmar

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