подсчет повторяющихся строк в mysql

#php #mysql #sql #select

#php #mysql #sql #выберите

Вопрос:

Я знаю, что эта тема обсуждалась миллион раз, но у меня странный результат. Я пытаюсь выполнить задание, в котором sql-запрос будет подсчитывать количество повторяющихся неповторяющихся строк. В принципе, у меня есть следующая таблица:

 ID 
865      
501     
501     
501
502
865
865
  

Мой запрос

 select id, count(*) as total from master_huts group by id
  

И я получаю это

 ID     Name
0      (some weird number)
501    3
502    1
865    2
  

Это довольно прямолинейно, но я не уверен, где я ошибаюсь.

Структура таблицы

 CREATE TABLE `master_huts` (
 `hutids` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
  

Комментарии:

1. Проверьте наличие пустых строк в таблице

2. @echo_Me Проблема в том, что ^

3. @user3671491 как определяется ваш столбец id? int или varchar ?

4. вы уверены, что в вашей таблице нет 0 или каких-либо других значений? посмотрите демонстрацию здесь, она отлично работает sqlfiddle.com /#!2/f7195/1

5. если у вас большая таблица, попробуйте сделать это, чтобы увидеть, есть ли у вас значение 0 select id from yourtable where id = 0

Ответ №1:

Выполните следующие действия:

 select count(id) as ocurences, id from master_huts group by id
  

Комментарии:

1. Это означает, что у вас действительно есть строка с id = 0

2. Моя ошибка, как обычно. Спасибо, приятель.

Ответ №2:

Просто используйте id в count вместо *

вот так…

 select id, count(id) as total from whatever group by id
  

Комментарии:

1. Сделал это, но все равно я получаю 0 в качестве первой строки

2. Вы уверены, что в вашей таблице точно такие же данные, предоставленные вами?

3. Решаемая :). моя ошибка. Извините

Ответ №3:

попробуйте это и посмотрите, не получится ли у вас что-нибудь странное:

 select id, count(*) as total from master_huts where id != 0 group by id;