-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Labels
Description
Join two tables, aggregate over the join, join onto another table:
(join (table :workgroups)
(-> (table :employees)
(join (table :salaries) :emp_id)
(aggregate [:avg/salaries.salary] [:workgroup_id]))
:workgroup_id)
Expected: Something like
SELECT workgroups.*,employees_subselect.workgroup_id
FROM workgroups
JOIN (SELECT employees.workgroup_id,avg(salaries.salary)
FROM employees
JOIN salaries USING(emp_id)
GROUP BY employees.workgroup_id) AS employees_subselect
USING (workgroup_id)
Actual: The inner join bleeds out of the subselect, also a field is double - selected:
SELECT workgroups.*,employees_subselect.workgroup_id,employees_subselect.workgroup_id
FROM workgroups
JOIN (SELECT employees.workgroup_id,avg(salaries.salary)
FROM employees
JOIN salaries USING(emp_id)
GROUP BY employees.workgroup_id) AS employees_subselect
USING (workgroup_id)
JOIN salaries USING(emp_id)