To, co mam, jest w zasadzie problemem, który można łatwo rozwiązać za pomocą wielu tabel, ale mam do tego tylko jedną tabelę.SQL - SELECT MAX() i towarzyszące mu pole
Rozważmy następującą tabelę bazy danych
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
muszę zaznaczyć wszystkie pola, ale tylko każdy użytkownik raz wraz z jednym ze swoich adresów e-mail („największe” jednym, określonym przez Max (funkcja kto)). Jest to wynik jestem po ...
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
Jak widać, „Harry” pojawia się tylko raz z jego „najwyższy” adres email correcponding „źródło”
Obecnie co się dzieje jest że grupujemy się na UserID, UserName i używając MAX() dla EmailAddress i Source, ale maksimum tych dwóch pól nie zawsze się zgadza, muszą być z tego samego rekordu.
Próbowałem innego procesu, dołączając do samej tabeli, ale udało mi się uzyskać tylko prawidłowy adres e-mail, ale nie odpowiednie "źródło" dla tego adresu.
Każda pomoc będzie mile widziane jak spędziłem zbyt długo stara się rozwiązać ten już :)
Czy masz dodatkową kolumnę z określonym kluczem podstawowym? Czy para (UserId, EmailAddress) jest unikalna? –