I think the RelNode you build by RelBuilder is equivalent to SELECT
DISTINCT FROM ORDER BY, except that the generated ORDER BY condition is
different.

-Rui

On Tue, Aug 4, 2020 at 3:40 PM Hrudaya Reddy <hre...@csod.com.invalid>
wrote:

> Thanks a lot for your input Rui.
>
> This is how I am implementing it.
>
>         RelNode relNode = builder
>                                 .scan("users")
>                                 .project(builder.field("name_first"),
> builder.field("name_last"))
>                                 .distinct()
>
> .sort(builder.desc(builder.field("name_last")))
>                                 .build();
> and the query generated is
>
> SELECT [name_first], [name_last]
> FROM [users]
> GROUP BY [name_first], [name_last]
> ORDER BY CASE WHEN [name_last] IS NULL THEN 0 ELSE 1 END, [name_last] DESC
>
> So, just wanted to make sure that this is the right approach.
>
> Regards,
> Hrudaya
>
> -----Original Message-----
> From: Rui Wang <amaliu...@apache.org>
> Sent: Monday, August 3, 2020 10:08 PM
> To: dev@calcite.apache.org
> Subject: [EXTERNAL] Re: Implementation of DISTINCT and ORDER BY
>
> I did a test locally and I found your example syntax is correct.
>
> I used "select distinct deptno, empno from emp order by empno desc"
> and Calcite generates this plan:
>
> LogicalSort(sort0=[$1], dir0=[DESC])
>   LogicalAggregate(group=[{0, 1}])
>     LogicalProject(DEPTNO=[$7], EMPNO=[$0])
>       LogicalTableScan(table=[[CATALOG, SALES, EMP]])
>
>
> What error message did you get?
>
> -Rui
>
>
> On Mon, Aug 3, 2020 at 9:52 PM Hrudaya Reddy <hre...@csod.com.invalid>
> wrote:
> >
> > Hi all,
> >
> > I am trying to generate the following SQL query but I am facing some
> difficulties in finding the right syntax to implement 'DISTINCT' and 'ORDER
> BY'
> >
> > SELECT DISTINCT name_first, name_last FROM users ORDER BY name_last DESC
> >
> >
> > I would really appreciate it if you could guide me with the correct
> usage.
> >
> >
> >
> > Thanks in advance.
> >
> > Regards,
> > Hrudaya
> >
> > This message, together with any attachments, is intended only for the
> use of the individual or entity to which it is addressed and may contain
> confidential and/or privileged information. If you are not the intended
> recipient(s), or the employee or agent responsible for delivery of this
> message to the intended recipient(s), you are hereby notified that any
> dissemination, distribution or copying of this message, or any attachment,
> is strictly prohibited. If you have received this message in error, please
> immediately notify the sender and delete the message, together with any
> attachments, from your computer. Thank you for your cooperation.
>
> ----------------------------------------------------------------------
> *EXTERNAL MESSAGE WARNING: This email originated from outside of
> Cornerstone. Do not click links or open attachments unless you recognize
> the sender and know the content is safe. Please see this wiki for more
> information on email safety:
> https://wiki.cornerstoneondemand.com/display/ISS/Security+Awareness
>

Reply via email to