Điều tôi có cơ bản là một vấn đề được giải quyết dễ dàng với nhiều bảng, nhưng tôi chỉ có một bảng duy nhất để thực hiện.SQL - SELECT MAX() và trường đi kèm
Hãy xem xét các bảng cơ sở dữ liệu sau
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
tôi cần phải chọn tất cả các lĩnh vực, nhưng người duy nhất mỗi người dùng một lần cùng với một trong những địa chỉ email của họ (các "lớn nhất", một được xác định bởi MAX (chức năng)). Đây là kết quả sau khi tôi ...
UserID UserName EmailAddress Source
3K3S9 Ben [email protected] user
SF13F Harry lh[email protected] 3rd_party
76DSA Lisa [email protected] user
OL39F Nick [email protected] 3rd_party
8F66S Stan [email protected] user
Như bạn có thể thấy, "Harry" chỉ hiển thị một lần với địa chỉ email của mình "cao nhất" các correcponding "nguồn"
Hiện nay những gì đang xảy ra là rằng chúng tôi đang nhóm trên UserID, UserName và sử dụng MAX() cho EmailAddress và Source, nhưng tối đa của hai trường đó không luôn khớp nhau, chúng cần phải từ cùng một bản ghi.
Tôi đã thử một quy trình khác bằng cách tự mình tham gia bảng, nhưng tôi chỉ quản lý để có được địa chỉ email chính xác chứ không phải "nguồn" tương ứng cho địa chỉ đó.
Bất kỳ trợ giúp sẽ được đánh giá như tôi đã dành quá dài cố gắng giải quyết này đã :)
Bạn có cột bổ sung có khóa chính được xác định không? Cặp duy nhất (UserId, EmailAddress) có độc đáo không? –