Что не так с этим кодом, который вызывает синтаксическую ошибку в PostgreSQL 9.3
Ниже приведен фрагмент кода SQL, который я написал. Я хочу объединить две записи в одну запись, где первый домен записи отображается как "Из источника", а домен второй записи становится "В домен". Мне нужно будет больше фильтровать, но почему это простое утверждение не работает?
Я получаю сообщение об ошибке "Синтаксическая ошибка в конце ввода"
*SELECT
"ID" , "Time", "Source Domain", "To Domain" From
(SELECT "RecordID" As "ID","UTCTimestamp" As "Time","Domain" As "Source Domain" FROM public."Traffic - Mobile")T1
Inner Join Lateral
(SELECT "Domain" As "To Domain" FROM public."Traffic - Mobile" where "RespondentID"="T1"."RespondentID" )T2*
заранее спасибо
PostgreSQL версия 9.3
2 ответа
Решение
Я думаю, вы слишком усложняете это. Достаточно простого самостоятельного объединения таблицы. Вам не нужна производная таблица для переименования столбца
SELECT "ID", "Time", t1."Domain" as "Source Domain", t2."Domain" as "To Domain"
from public."Traffic - Mobile" as t1
join public."Traffic - Mobile" as t2 on t2."RespondentID" = t1."RespondentID";
Я думаю, что вам все еще нужно ON
пункт, так как это INNER JOIN
, Если вы не хотите указывать ON
пункт, я думаю, вы могли бы использовать CROSS JOIN
вместо.
Например
SELECT
"ID" , "Time", "Source Domain", "To Domain" From
(SELECT "RecordID" As "ID","UTCTimestamp" As "Time","Domain" As "Source Domain"
FROM public."Traffic - Mobile")T1
Inner Join Lateral
(SELECT "Domain" As "To Domain" FROM public."Traffic - Mobile"
where "RespondentID"="T1"."RespondentID" )T2
ON true