You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Zhen Wang (Jira)" <ji...@apache.org> on 2020/12/31 05:14:00 UTC

[jira] [Commented] (CALCITE-4349) Support GROUP_CONCAT aggregate function for MySQL

    [ https://issues.apache.org/jira/browse/CALCITE-4349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17256837#comment-17256837 ] 

Zhen Wang commented on CALCITE-4349:
------------------------------------

want some discussion here, the overall implementation would be something like below

https://github.com/apache/calcite/compare/master...zinking:CALCITE-4349?expand=1

what should 'SEPARATOR' be in the parsing result ? an operator call ? or just some literal?  didn't manage to find something similar in the code base. 

[~julianhyde]

> Support GROUP_CONCAT aggregate function for MySQL
> -------------------------------------------------
>
>                 Key: CALCITE-4349
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4349
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Priority: Major
>
> Support the {{GROUP_CONCAT}} aggregate function for MySQL. Here is the [syntax|https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat]:
> {noformat}
> GROUP_CONCAT([DISTINCT] expr [,expr ...]
>              [ORDER BY {unsigned_integer | col_name | expr}
>                  [ASC | DESC] [,col_name ...]]
>              [SEPARATOR str_val])
> {noformat}
>  
> {{GROUP_CONCAT}} is analogous to {{LISTAGG}} (see CALCITE-2754) (and also to BigQuery and PostgreSQL's {{STRING_AGG}}, see CALCITE-4335). For example, the query
> {code:java}
> SELECT deptno, GROUP_CONCAT(ename ORDER BY empno SEPARATOR ';')
> FROM Emp
> GROUP BY deptno
> {code}
> is equivalent to (and in Calcite's algebra would be desugared to)
> {code:java}
> SELECT deptno, LISTAGG(ename, ';') WITHIN GROUP (ORDER BY empno)
> FROM Emp
> GROUP BY deptno
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)