/
vaiforic
/
abd6
Обзор
Документация
Войти
/
vaiforic
/
abd6
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
optimize/optimize_join.sql
47 строк
1 KB
vaiforic-lin-nt
lab4 and lab3
30 май 2026, 05:33
30 май 2026, 05:33
46bc341
Код
Авторство
О чём код?
with a_tmp as ( select status, city, int_attr_1 % 100 as int_mod_100, count(*) as cnt_a, avg(numeric_attr_1) as avg_a from public.synthetic_data where bool_attr_1 = true group by status, city, int_attr_1 % 100 ), b_tmp as ( select status, city, text_attr_2, count(*) as cnt_b, avg(numeric_attr_2) as avg_b from public.synthetic_data where bool_attr_1 = true group by status, city, text_attr_2 ), c_tmp as ( select text_attr_2, int_attr_1 % 100 as int_mod_100, count(*) as cnt_c, avg(score_1) as avg_c from public.synthetic_data where bool_attr_2 = false group by text_attr_2, int_attr_1 % 100 ) select a.status, a.city, sum(a.cnt_a * b.cnt_b * c.cnt_c) as join_rows, avg(a.avg_a + b.avg_b + c.avg_c) as avg_metric from a_tmp as a join b_tmp as b on a.status = b.status and a.city = b.city join c_tmp as c on b.text_attr_2 = c.text_attr_2 and a.int_mod_100 = c.int_mod_100 group by a.status, a.city order by join_rows desc limit 20;