SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.04.2019 12:46:59

Vbifyz
Участник
Зарегистрирован: 27.11.2018
Сообщений: 18

Усложнить запрос дополнением одинакового параметра

Здравствуйте. Есть рабочий запрос:

SELECT `title`, count(*) FROM `tbl_post` GROUP BY `title` HAVING count(*)>1;

который выбирает "одинаковые title в таблице tbl_post"

Что нужно в эту строку добавить, чтобы выполнялось условие "на один номер телефона" .

То есть:

"одинаковые title в таблице tbl_post  на один phonenum"

Неактивен

 

#2 29.04.2019 12:53:41

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2227

Re: Усложнить запрос дополнением одинакового параметра

Приведите пожалуйста пример данных,  и желаемый результат из этого примера.

Текущие Ваш запрос скорее выбирает "те title, которые встречаются больше одного раза".


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 29.04.2019 13:06:14

Vbifyz
Участник
Зарегистрирован: 27.11.2018
Сообщений: 18

Re: Усложнить запрос дополнением одинакового параметра

Текущие Ваш запрос скорее выбирает "те title, которые встречаются больше одного раза".

Ну правильно. Нужно добавить условие в команду, что номер phonenum при этом у них один и тот же.


Приведите пожалуйста пример данных,  и желаемый результат из этого примера.

титл пример: "1-к квартира, ул. пупкина". Встречается допустим 5 раз. Но при этом только у 2 записей из 5 телефоны одинаковые. Или вообще у всех разные.

Рабочая команда показывает сколько раз будет встречаться данный титл

Желаемый результат: показывает сколько раз встречается данный титл, при условии, что phonenum в записях одинаковый.

Отредактированно Vbifyz (29.04.2019 13:13:56)

Неактивен

 

#4 29.04.2019 13:27:27

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2227

Re: Усложнить запрос дополнением одинакового параметра


SELECT
  `title`,
  `phone_number`,
  count(*)
FROM
  `tbl_post`
  GROUP BY
  `title`,`phone_number`
HAVING
  count(*)>1;


Вернет такие пары тайтл/телефон, где у конкретного тайтла один и тот же телефон встречается более, чем один раз.
Это Вам нужно?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 29.04.2019 13:38:19

Vbifyz
Участник
Зарегистрирован: 27.11.2018
Сообщений: 18

Re: Усложнить запрос дополнением одинакового параметра

Да. Нужно это. Только ошибка выдается:

Ошибка
SQL запрос: Документация


SELECT `title`, `phonenum`, count(*) FROM `tbl_post` GROUP BY `title`,`phonenum` HAVIN count(*)>1 LIMIT 0, 25
Ответ MySQL: Документация

#1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около 'HAVIN count(*)>1 LIMIT 0, 25' на строке 1

Неактивен

 

#6 29.04.2019 13:40:15

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2227

Re: Усложнить запрос дополнением одинакового параметра

HAVING, у Вас HAVIN
И, честно говоря, LIMIT 0 меня откровенно смущает wink.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 29.04.2019 14:03:36

Vbifyz
Участник
Зарегистрирован: 27.11.2018
Сообщений: 18

Re: Усложнить запрос дополнением одинакового параметра

Получилось! Огромное спасибо!!!!

Неактивен

 

#8 29.04.2019 14:21:06

Vbifyz
Участник
Зарегистрирован: 27.11.2018
Сообщений: 18

Re: Усложнить запрос дополнением одинакового параметра

Экспериментальным путем усложнил команду, чтобы учитывалось условие статус=1:

SELECT `title`, `phonenum`, count(*) FROM `tbl_post` WHERE `status` = 1 GROUP BY `title`,`phonenum` HAVING count(*)>1;

Отредактированно Vbifyz (29.04.2019 14:50:35)

Неактивен

 

#9 29.04.2019 15:05:58

Vbifyz
Участник
Зарегистрирован: 27.11.2018
Сообщений: 18

Re: Усложнить запрос дополнением одинакового параметра

Скажите, а как задать команду, чтобы вот из этой выборки:

SELECT `title`, `phonenum`, count(*) FROM `tbl_post` WHERE `status` = 1 GROUP BY `title`,`phonenum` HAVING count(*)>1;

удалить наиболее старые записи.

Например при данном селекте получили результат:

Квартира,  70 лет Победы, 2 (титл)    915659хххх (номер)   2 (количество записей)
Квартира,  Академика Жук, 12/1, подъезд  927159хххх   3
Квартира,  Алфёрова, 5Б  9887850хххх   4

Надо чтобы при удалении наиболее старых записей остались только по 1 самой последней записи на каждую строку:
Квартира,  70 лет Победы, 2 (титл)    915659хххх (номер)   1 (количество записей)
Квартира,  Академика Жук, 12/1, подъезд  927159хххх   1
Квартира,  Алфёрова, 5Б  9887850хххх   1



Время записи задается параметром create_time

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson