То, что у меня есть, это в основном проблема, которую легко решить с помощью нескольких таблиц, но у меня есть только одна таблица для этого.
Рассмотрим следующую таблицу базы данных
UserID UserName EmailAddress Source
3K3S9 Ben ben@myisp.com user
SF13F Harry lharry_x@hotbail.com 3rd_party
SF13F Harry reside@domain.com user
76DSA Lisa cake@insider.com user
OL39F Nick stick@whatever.com 3rd_party
8F66S Stan myman@lol.com user
Мне нужно выбрать все поля, но только кто каждый пользователь один раз вместе с одним из их адресов электронной почты («самый большой», как определено функцией MAX ()). Это результат, который я после ...
UserID UserName EmailAddress Source
3K3S9 Ben ben@myisp.com user
SF13F Harry lharry_x@hotbail.com 3rd_party
76DSA Lisa cake@insider.com user
OL39F Nick stick@whatever.com 3rd_party
8F66S Stan myman@lol.com user
Как видите, «Гарри» отображается только один раз, а его «самый высокий» адрес электронной почты соответствует «источнику»
В настоящее время происходит группировка по UserID, UserName и использование MAX () для EmailAddress и Source, но максимум этих двух полей не всегда совпадает, они должны быть из одной записи.
Я попробовал другой процесс, объединив таблицу с самим собой, но мне удалось получить только правильный адрес электронной почты, но не соответствующий «источник» для этого адреса.
Буду признателен за любую помощь, так как я слишком долго пытался решить эту проблему:)