Попытка найти перекрывающиеся столбцы между двумя таблицами и использовать результат в одном и том же запросе SQL.
Пример кода с двумя подзапросами, которые работают по отдельности, но не могут объединить их вместе:
WITH DIFF AS (
SELECT column_name AS Columns
-- SELECT ARRAY_AGG(column_name) AS Columns
-- SELECT STRING_AGG(column_name) AS Columns
FROM (
SELECT column_name, 'S' AS S
FROM DB.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
WHERE table_name = 'T1'
INTERSECT DISTINCT
SELECT column_name, 'S' AS S
FROM DB.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
WHERE table_name = 'T2'
)
-- GROUP BY S
)
SELECT T1.*, T2.* EXCEPT(SELECT Columns FROM DIFF)
-- SELECT T1.*, T2.* EXCEPT (T1.*)
FROM DB.T1
LEFT JOIN DB.T2 USING(GUID)
Используя Python pandas, объединение очень просто из-за мощности суффиксов в случае дублированных столбцов, но в текущем SQL нам не хватает этой мощности.