3年前关闭。
我有一张桌子,每个ID重复3次。每行中每个ID前面都有一个日期。 我想为日期最近的每个ID选择整行。该表中共有370列,我希望在选择该行时选择所有列。
样本 -
ID Name Date Marks .. .. .. 1 XY 4/3/2017 27 1 fv 4/3/2014 98 1 jk 4/3/2016 09 2 RF 4/12/2015 87 2 kk 4/3/2009 56 2 PP 4/3/2011 76 3 ee 4/3/2001 12 3 ppp 4/3/2003 09 3 lll 4/3/2011 23
答案应该是
ID Name Date Marks .. .. .. 1 XY 4/3/2017 27 2 RF 4/12/2015 87 3 lll 4/3/2011 23
我正在尝试如下-
select distinct ID,*,max(date) as maxdate from table
我也在Hive中尝试此操作。所以不确定是否某些sql函数在Hive中不起作用
谢谢
使用公认的答案并使之适应您的问题,您将获得:
SELECT tt.* FROM myTable tt INNER JOIN (SELECT ID, MAX(Date) AS MaxDateTime FROM myTable GROUP BY ID) groupedtt ON tt.ID = groupedtt.ID AND tt.Date = groupedtt.MaxDateTime