У меня есть временное представление только с 1
записью / значением, и я хочу использовать это значение для вычисления возраста клиентов, представленных в другой большой таблице (с 100
M строками). Я использовал предложение CROSS JOIN
, что привело к проблемам с производительностью.
Есть ли лучший подход для реализации этого требования, который будет работать лучше? Подойдет ли в этом случае подсказка broadcast
? Каков рекомендуемый подход для решения такого сценария ios?
Справочная таблица: (содержит только 1
значение)
create temporary view ref
as
select to_date(refdt, 'dd-MM-yyyy') as refdt --returns only 1 value
from tableA
where logtype = 'A';
Таблица Cust (10 M строк):
custid | birthdt
A1234 | 20-03-1980
B3456 | 09-05-1985
C2356 | 15-12-1990
Запрос (вычислить возраст по birthdt
):
select
a.custid,
a.birthdt,
cast((datediff(b.ref_dt, a.birthdt)/365.25) as int) as age
from cust a
cross join ref b;
Мой вопрос: есть ли лучший подход для выполнения этого требования?
Спасибо