我在hive,table1和table2中有两个表,其中包含以下值:
TABLE1:........................................ TABLE2:
日期.................值.....................日期......... ............价值
#&39; 2016年1月1日' ....一个.......................' 2016年1月1日&# 39; .......... 2
#&39; 2016年1月1日' .... 3 .....................' 2016年1月1日' .......... 4个
' 2016年1月1日' .... 5
我需要连接两个表来创建第三个表(有三行):
日期....................... VALUE1 ...................... .....值2
' 2016年1月1日' ..........一个........................... ..... 2个
' 2016年1月1日' .......... 3 ........................... 。四个
' 2016-01-01' ..........五
我尝试了很多选项,但都没有。
任何想法。
答案 0 :(得分:0)
DECLARE @table1 TABLE ([Date] Date, [Value] VarChar(10))
DECLARE @table2 TABLE ([Date] Date, [Value] VarChar(10))
INSERT INTO @table1([Date], [Value])
SELECT '2016-01-01', 'one'
UNION ALL
SELECT '2016-01-01', 'three'
UNION ALL
SELECT '2016-01-01', 'five'
INSERT INTO @table2([Date], [Value])
SELECT '2016-01-01', 'two'
UNION ALL
SELECT '2016-01-01', 'four'
SELECT [Date] = t1.[Date],
[Value1] = t1.[Value],
[Value2] = t3.[Value]
FROM
(SELECT [Date] = t.[Date],
[Value] = t.[Value],
[ID] = ROW_NUMBER() OVER(ORDER BY t.[Date] DESC)
FROM @table1 t) t1
OUTER APPLY
(
SELECT TOP 1 t2.[Value]
FROM
(SELECT [Date] = t.[Date],
[Value] = t.[Value],
[ID] = ROW_NUMBER() OVER(ORDER BY t.[Date] DESC)
FROM @table2 t) t2
WHERE t2.[Date] = t1.[Date]
AND t2.[ID] = t1.[ID]
) t3