crepererum commented on issue #4854:
URL: 
https://github.com/apache/arrow-datafusion/issues/4854#issuecomment-1377388995

   Note that `ORDER BY` uses the columns generated by `GROUP BY`, NOT the 
original columns. This can be checked w/ postgres:
   
   ```console
   postgres=# select
     -sum(value) AS "value",
     date_trunc('month',time) AS "time"
   FROM t
   GROUP BY time
   ORDER BY value;
    value |        time         
   -------+---------------------
       -3 | 2022-01-01 00:00:00
       -2 | 2022-01-01 00:00:00
       -1 | 2022-01-01 00:00:00
   (3 rows)
   ```
   
   Also note that columns that are NOT part of the `GROUP BY` output cannot be 
used in `ORDER BY`:
   
   ```console
   postgres=# select
     date_trunc('month',time) AS "time"
   FROM t                              
   GROUP BY time
   ORDER BY value;
   ERROR:  column "t.value" must appear in the GROUP BY clause or be used in an 
aggregate function
   LINE 5: ORDER BY value;
   ```
   
   Looking at the current `LogicalPlanBuilder::sort` code it seems that the 
"missing column"-handling or the `rewrite_sort_cols_by_aggs` bit in there are 
somewhat broken.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to