我要从多个表中提取数据,并且有三个联合查询。我希望将不在一行中的信息填充到另一行中的信息中,同时仍保留一个单独的月份值列表。
每个ID有三行,基本上,我希望从具有匹配ID的行中复制不在行中的任何信息,但由于某些关键的每月数据,我仍然将三行分开每行分开。
答案 0 :(得分:0)
您可以使用分析功能:
select max(name) over (partition by id) as name,
max(zip) over (partition by id) as zip,
max(type1) over (partition by id) as type1,
id, type, "201907", "201906", "201905"
from t;
答案 1 :(得分:0)
您可以使用以下查询:
SELECT
T2.MAX_NAME,
T2.MAX_ZIP,
T2.MAX_TYPE,
T1.ID,
T1.TYP1,
T1."201907",
T1."201906",
T1."201905"
FROM
TAB T1
JOIN (
SELECT
MAX(NAME) MAX_NAME,
MAX(ZIP) MAX_ZIP,
MAX(TYPE) MAX_TYPE,
ID
FROM
TAB
GROUP BY
ID
) T2 ON ( T1.ID = T2.ID );