如何选择最近的日期项
问题描述:
我哈瓦表USER:如何选择最近的日期项
select t.* from user t;
uid uname
1 tom
2 jim
3 bob
4 lily
还有桌上玩具
select t.* from toys t;
tid uid tdate
1 1 7/12/15
2 1 6/12/15
3 2 9/12/15
4 2 10/12/15
5 3 12/12/15
现在我想
uid tid uname tdate
1 2 tom 6/12/15
2 3 jim 9/12/15
3 5 bob 12/12/15
4 lily
我应该怎么办? (我使用oracle数据库);
SELECT a.uid, b.tid, a.uname, MAX(b.tdate) AS tdate
FROM user a LEFT JOIN toys b ON a.uid = b.uid
GROUP BY a.uid, b.tid, a.uname
或最近的玩具每用户(如果有的话):
SELECT a.uid, b.tid, a.uname, MAX(b.tdate)
FROM user a LEFT JOIN toys b ON a.uid = b.uid
GROUP BY a.uid, a.uname
答
最近每个玩具和用户tdate每个玩具的最短日期:
SELECT user.uid, toys.tid, user.name, toys.tdate
FROM
(SELECT tid, uid, tdate,
ROW_NUMBER() OVER (PARTITION BY uid ORDER BY tdate asc)
AS SEQ
FROM toys
)table1
LEFT JOIN user on toys.uid = user.uid
WHERE SEQ = 1
+0
这个SQL不能执行 – wkzq
是否希望玩具的用户按日期排序或只有最近玩具的用户? – Roman
与最小日期 – wkzq