Не знаю, как присоединиться, используя расчет и столбец - PullRequest
0 голосов
/ 27 декабря 2018

Я не знаю, как объединить таблицы на основе расчета.Я должен взять подстроку, чтобы получить часть строки, которая мне нужна, чтобы соответствовать столбцу из другой таблицы.Я не могу понять, как присоединиться к ним и действительно не знаю, с чего начать.

Я попробовал все, что в моих силах, но я буквально взял урок для начинающих и теперь должен постоять за себя.

Select *
From five9_data.calllog join warbird.user
ON warbird.attr_employee = substring(five9_data.calllog.agent, 4,position('@' in five9_data.calllog.agent)- 4)
Group By warbird.attr_employee
Order warbird.attr_employee
Limit 100

Я попробовал описанное выше в команде Select, но понял, что это не сработает, и что мне нужно использовать вычисления в операторе соединения, но я не имею представления о синтаксисе / формуле.Несколько примеров, сделанных как можно более простыми, были бы великолепны.У меня также есть проблема с Группой По заказу с этим.

Показано выше.

Ответы [ 2 ]

0 голосов
/ 12 июля 2019
from t1 join
     t2
     on t1.empid = substring(t2.agent, 4, position('@' in t2.agent) - 4)
0 голосов
/ 27 декабря 2018

Часто условие join выглядит следующим образом:

from t1 join
     t2
     on t1.empid = concat('%', t2.agent, '%')

Или вы можете просто использовать выражение:

from t1 join
     t2
     on t1.empid = substring(t2.agent, 4, position('@' in t2.agent) - 4) 

РЕДАКТИРОВАТЬ:

Какдля вашего примера кода я бы написал его следующим образом:

Select b.attr_employee, . . .   -- aggregation functions go here
From five9_data.calllog cl join
     warbird.user u
     on u.attr_employee = substring(cl.agent, 4, position('@' in cl.calllog.agent) - 4)
Group By u.attr_employee
Order u.attr_employee
Limit 100;

Вот изменения, на которые следует обратить внимание:

  • Псевдонимы таблиц облегчают написание и чтение запроса.
  • При использовании GROUP BY единственными неагрегированными столбцами в SELECT должны быть клавиши GROUP BY.Остальные должны быть агрегированы.
  • Ваша проблема в том, что warbird.attr_employee не определено, потому что вы пропустили имя таблицы.Тем не менее, u гораздо проще писать и читать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...