У меня есть 2 таблицы 1 и 2. Внутри table1 я создал производное поле «actualoutput», в котором я использую соединение с таблицей-2 с «newgroup» в качестве соединителя, чтобы получить поле «finalgroup».
Теперь в выходных данных В таблице поле finalgroup имеет значения NULL, выделенные синим цветом.
То, что я хочу, это - ТОЛЬКО когда значение равно "NULL" в "finalgroup", я хочу заменить его условием на основе поля "website", присутствующего в table1, и создать новый столбец "finalgroup2" ». Поэтому, если присутствует «веб-сайт», то finalgroup2 будет иметь значение «web», иначе «offline» (выделено красным), а все остальные сохранят значение «finalgroup».
Но я не получаю логи c (пробовал несколько попыток) получить вывод, как показано на рисунке - FinalTable. Если возможно получить эту логику c непосредственно в поле "finalgroup", то я в порядке с этим, то есть нет необходимости в "finalgroup2"
Может кто-нибудь, пожалуйста, помогите.
См. Изображение:
Запрос, который я использовал:
SELECT
source,
detail,
CONCAT(IFNULL(Source,
''), "-", IFNULL(Detail,
'')) AS actualoutput,
website,
newgroup,
finalgroup,
CASE
WHEN finalgroup IS NULL AND website IS NOT NULL THEN "web"
WHEN finalgroup IS NULL
AND website IS NULL THEN "offline"
ELSE
"finalgroup"
END
AS finalgroup2
FROM (
SELECT
source,
detail,
CONCAT(IFNULL(Source,
''), "-", IFNULL(Detail,
'')) AS actualoutput,
website,
newgroup,
finalgroup
FROM (
SELECT
source,
detail,
CONCAT(IFNULL(Source,
''), "-", IFNULL(Detail,
'')) AS actualoutput,
website
FROM (
SELECT
source,
detail,
website
FROM
`dataset.concat`))
LEFT JOIN (
SELECT
newgroup,
finalgroup
FROM
`dataset.finalgroup`)
ON
actualoutput=newgroup)