У меня есть проблема, которая легко решается с помощью нескольких таблиц, но для этого у меня есть только одна таблица.SQL - SELECT MAX() и сопроводительное поле
Рассмотрим следующий пример таблицы базы данных
UserID UserName EmailAddress Source
3K3S9 Ben [email protected] user
SF13F Harry [email protected] 3rd_party
SF13F Harry [email protected] user
76DSA Lisa [email protected] user
OL39F Nick [email protected] 3rd_party
8F66S Stan [email protected] user
мне нужно выбрать все поля, но только каждый пользователь один раз вместе с одним из их адреса электронной почты («самый большой» один, как определено в MAX (функция кто)). Это результат я после ...
UserID UserName EmailAddress Source
3K3S9 Ben [email protected] user
SF13F Harry [email protected] 3rd_party
76DSA Lisa [email protected] user
OL39F Nick [email protected] 3rd_party
8F66S Stan [email protected] user
Как вы можете видеть, «Гарри» только раз показал его «высшей» адрес электронной почты в correcponding «источник»
В настоящее время, что происходит на что мы группируем по UserID, UserName и используем MAX() для EmailAddress и Source, но максимум этих двух полей не всегда совпадает, они должны быть из одной записи.
Я пробовал другой процесс, присоединившись к таблице с собой, но мне удалось получить правильный адрес электронной почты, но не соответствующий «источник» для этого адреса.
Любая помощь будет оценена, как я провел слишком много времени, пытаясь решить эту уже :)
У вас есть дополнительная колонка с определенным первичным ключом? Является ли пара (UserId, EmailAddress) уникальной? –