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

Priyanka commented on CALCITE-7123:
-----------------------------------

Will this work [~julianhyde] ? All the columns are part of the same Druid table.
{code:java}
SELECT 
  FLOOR("__time" TO DAY)  AS "createtime.day", 
  COALESCE("parentName", "stockName") AS "unitName",
  COUNT(*) AS "count"
FROM "druid"."events"
WHERE 
   "__time" >= TIMESTAMP '2025-05-31 22:00:00.000' AND  "__time" <= TIMESTAMP 
'2025-06-12 21:59:59.000' 
GROUP BY COALESCE("parentName", "stockName") {code}
 

> Query doesn't work as expected when using COALESCE or CASE in the group by 
> query
> --------------------------------------------------------------------------------
>
>                 Key: CALCITE-7123
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7123
>             Project: Calcite
>          Issue Type: Bug
>          Components: avatica
>    Affects Versions: 1.39.0
>            Reporter: Priyanka
>            Priority: Major
>
> Running the following query directly on the Druid UI returns the expected 
> results:
> {code:java}
> SELECT
>                           FLOOR("__time" TO DAY)  AS "createtime.day", 
> COALESCE("parentName", "stockName") AS "unitName",
>                           COUNT(*) AS "count"
>                         FROM
>                           "druid"."events"
>                         WHERE  "customerName" = 'x' AND  "__time" >= 
> TIMESTAMP '2025-05-31 22:00:00.000' AND  "__time" <= TIMESTAMP '2025-06-12 
> 21:59:59.000'
>                             AND (FALSE = true  OR "fleetName" IN ('y'))
>                             AND (FALSE = false  OR "eventTemplateName" IN 
> (null))
>                             AND (FALSE = false  OR "consistNumber" IN (null))
>                             AND (FALSE = false  OR ("parentName" IS NOT NULL 
> AND "stockName" IN (null)))
>                             AND (FALSE = false  OR (COALESCE("parentName", 
> "stockName") IN (null)))
>                             AND (FALSE = false  OR "locationName" IN (null))
>                             AND (FALSE = false  OR "eventCategory" IN (null))
>                             AND (FALSE = false OR "eventPriorityName" IN 
> (null))
>                             AND (FALSE = false  OR null)
>                             AND (FALSE = false  OR "active" = null)
>                         GROUP BY FLOOR("__time" TO DAY) , 
> COALESCE("parentName", "stockName") {code}
> But when it goes through Calcite, it returns the stockName always as the 
> unitName, even if the parentName is available.
> Testing with CASE instead of COALESCE or using a CAST for the type also 
> didn't have any effect with Calcite.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to