我有一個如下所示的數據集: example data set。如何使用max()函數檢索使用SQL/PostgreSQL的最新行
在一個域下有多個用戶。我只需要每個email_domain一行,並且該行應該對應於max(last_login)值。總之,我只希望來自最後一個email_domain的用戶在同一個域中的所有用戶中登錄。
我用盡查詢,看起來像這樣
select *
FROM
(
select LOWER(SUBSTRING(ua.email FROM POSITION ('@' IN ua.email) + 1)) AS email_domain, last_login, last_name, first_name, email, phone
from user_with_address ua
order by email_domain
) as A
group by email_domain, last_login, last_name, first_name, email, phone
having last_login = max(last_login)
order by email_domain
我仍然可以爲每個郵件域的多個值,我究竟做錯了名單?請幫忙。
聲明:我有SQL的基本 - >中級知識。
你正在按last_login分組,可能是想選擇max(last_login)而不是按它分組?同時按名稱,電子郵件,電話等分組將記錄從域中分離出來。 –