Skip to content

join - aggregate - join bleeds out join from subselect #114

@bendlas

Description

@bendlas

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions