You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2014/10/08 03:17:34 UTC
[jira] [Commented] (PHOENIX-945) Support correlated subqueries in
comparison without ANY/SOME/ALL
[ https://issues.apache.org/jira/browse/PHOENIX-945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14162897#comment-14162897 ]
James Taylor commented on PHOENIX-945:
--------------------------------------
Wow, +1. You implemented correlated subquery support by adding about 50 lines of code?! That's pretty awesome! What kind of limitations are there outside of only allowing the correlation in a comparison expression?
Minor nit: might be worth having a copy constructor to help with readability:
{code}
+ subquery = NODE_FACTORY.select(subquery.getFrom(), subquery.getHint(), subquery.isDistinct(),
+ selectNodes, where, groupbyNodes, subquery.getHaving(), subquery.getOrderBy(),
+ subquery.getLimit(), subquery.getBindCount(), true, subquery.hasSequence());
+
{code}
> Support correlated subqueries in comparison without ANY/SOME/ALL
> ----------------------------------------------------------------
>
> Key: PHOENIX-945
> URL: https://issues.apache.org/jira/browse/PHOENIX-945
> Project: Phoenix
> Issue Type: Sub-task
> Affects Versions: 3.0.0, 4.0.0, 5.0.0
> Reporter: Maryann Xue
> Assignee: Maryann Xue
> Fix For: 3.0.0, 4.0.0, 5.0.0
>
> Attachments: 945.patch
>
> Original Estimate: 336h
> Remaining Estimate: 336h
>
> Example:
> SELECT employee_number, name
> FROM employees AS Bob
> WHERE salary > (
> SELECT AVG(salary)
> FROM employees
> WHERE department = Bob.department);
> Basically we can optimize these queries into join queries, like:
> SELECT employees.employee_number, employees.name
> FROM employees INNER JOIN
> (SELECT department, AVG(salary) AS department_average
> FROM employees
> GROUP BY department) AS temp ON employees.department = temp.department
> WHERE employees.salary > temp.department_average;
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)