Проблема с GROUP BY

virakochi

Устал
Проблема с GROUP BY

Задача. Нужно выбрать из таблицы уникальные записи.
Есть правило, по которому записи считаются одинаковыми:
patron_name AND city AND state AND (email OR phone_number OR address1)

Безрезультатно порывшись в документации написал такой запрос:
Код:
SELECT patron_name, city, state, email, phone_number, address1, count(patron_name) as 'cnt' from answers134
          group by patron_name, city, state, (email or phone_number or address1)
          Order by patron_name, 
						CASE sweeps
							WHEN 'N' THEN 1
							WHEN '' THEN 2
						END
Который выдал (хотя не уверен) необходимые мне результаты.
В документации не нашел описания механизма работы GROUP BY с таким выражением.
Объясните пожалуйста, или дайте линку где почитать, как это работает.
 

virakochi

Устал
Одинаковыми считаются записи, в которых совпадают поля patron_name, city, state и есть хотя бы одно совпадение по email, phone_number, address1

-~{}~ 11.03.05 16:29:

CONCAT - не то
 

yugene

Отошел от дел
попробуй копать в сторону DISTINCT+JOIN с самой собой по твоему условию, если хочешь
 

virakochi

Устал
yugene
Зачем сюда JOIN привязывать?

Этот запрос выдал, визуально, нужные результаты. Просто мне нужно быть на 100% уверенным, потому хочу узнать, как написанное работает.

-~{}~ 11.03.05 18:31:

Все еще не нашел.
 

SNiP

Новичок
Возможно я ошибаюсь, но кажется это (email or phone_number or address1) не то что ожидается.
т.е.
Код:
col1 | col2 | col3
 1     0      0
 1  NULL  NULL
 1     1      1
 1     2      2

select count(col1) as cnt from table group by col1, (col2 or col3);

cnt |
 1
 1
 2
 

virakochi

Устал
SNiP
Да, есть такое.. После тестов и немного думания пришел к выводу, что это обычное логическое "и" по этим полям. Грустно, что сразу не допер)))...
Значит буду джойнить.
 
Сверху