我在 hive 中有两个表,table1和table2具有以下值:
表1:..................................表2:
日期.....值..日期......... ............值
'2016-01-01'.. one .......................'2016-01-01'........ ..二
'2016-01-01'....三个.....................'2016-01-01'..........四
'2016-01-01'.... 5
并且我需要将两个表连接起来以创建第三个表(具有三行):
日期.......................值1 ......................... ..value2
'2016-01-01'..... one ................................二
'2016-01-01'...............三.....................四
'2016-01-01'.........五个
我尝试了许多选择,但没有一个起作用。
任何的想法。
最佳答案
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
关于sql - 如何在列中具有唯一值的配置单元中联接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37346257/