SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 18.06.2010 22:56:16

yuoanswami
Участник
Зарегистрирован: 18.06.2010
Сообщений: 4

UNION и GROUP BY - можно ли совместить?

Необходимо составить запрос MySQL, который объединял бы строки из одной таблицы при этом группировал бы повторяющиеся строки по опр. полю.

Тобишь нечто вроде:

SELECT * FROM tablename WHERE condition_1
UNION
SELECT * FROM tablename WHERE condition_2
...
SELECT * FROM tablename WHERE condition_N
GROUP BY fieldname

Такой запрос не работает - группировка не произходит, но идея именно такова.

Очень при этом нужно, чтобы при группировке заносилось количество сгруппированных строк (COUNT(*))

Возможно ли сие? Есть у кого идеи по данному вопросу? Заранее благодарю.

Неактивен

 

#2 18.06.2010 23:09:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: UNION и GROUP BY - можно ли совместить?

SELECT ... FROM (
SELECT * FROM tablename WHERE condition_1
UNION
SELECT * FROM tablename WHERE condition_2
...
SELECT * FROM tablename WHERE condition_N) t
GROUP BY fieldname;

Неактивен

 

#3 18.06.2010 23:27:19

yuoanswami
Участник
Зарегистрирован: 18.06.2010
Сообщений: 4

Re: UNION и GROUP BY - можно ли совместить?

Vasya, огромная тебе благодарность за быстрый и правильный ответ! Единственно после  UNION еще нужно дописать ALL чтобы одинаковые строки не исключались при объединении (это я сам уже нарыл только что), но то нюанс, может он не во всех версиях MySQL необходим.

Отредактированно yuoanswami (18.06.2010 23:30:30)

Неактивен

 

Board footer

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