[英]How to select the latest rows where each contains one value of all possible values found in a domain table?
ID Username City RegisterYear
1 User1 New York 1990
2 User2 San Diego 2008
3 User3 Chicago 2009
4 User4 Los Angeles 1994
5 User5 San Diego 2004
域表
ID City
1 New York
2 San Diego
3 Los Angeles
4 Chicago
在此示例中,查詢將返回:
User1
User2
User3
user4
好吧,首先您需要用域表的ID列替換第一個表中的“城市”。 “城市”不是主鍵。
之后:
SELECT u.username
FROM users u,
domain d
WHERE d.id = u.cityid
AND u.registeryear = (SELECT MAX(u2.registeryear)
FROM users u2
WHERE u2.cityid = u.cityid);
由於問題並沒有提供太多細節,因此我使用了syrion所作的一些假設,並且還決定使用城市名稱來簡化操作。
select max(u.username) keep (dense_rank last order by registeryear) as username
from
domain d
left outer join users u on (d.city = u.city)
group by d.city
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.