I am trying to get a group by for a column "Order_contract_Number" with type as an another column where i am using "Count" aggregator in "case when" function based on "product class" which is another column from the source. Now the issue is that the product class is multiple for same "Order_contract_Number" and the issue araises when i NEED to use "Product class" also in the group by which is causing the issue. Below is the code of what i have written.
SELECT "ORDER_CONTRACT_NUMBER",
CASE
WHEN COUNT(distinct "product_class_Sheet1"."PRODUCT CLASS")>1
THEN 'MIXED TYPE : '||."PRODUCT CLASS"
WHEN COUNT(distinct "product_class_Sheet1"."PRODUCT CLASS")=1
THEN "product_class_Sheet1"."PRODUCT CLASS"||' ONLY '
ELSE NULL END AS TYPE
FROM
"product_class_Sheet1"
GROUP BY
"product_class_Sheet1"."ORDER_CONTRACT_NUMBER"
, "product_class_Sheet1"."PRODUCT CLASS"
I want the outcome to be
| ORDER_CONTRACT_NUMBER | TYPE |
|---------------------------------|----------------------|
| 1 | MIXED TYPE A |
| 1 | MIXED TYPE B |
| 2 | A Only |
| 3 | MIXED TYPE A |
| 3 | MIXED TYPE B |
| 3 | MIXED TYPE C |
| 3 | MIXED TYPE D |
| 3 | MIXED TYPE E |
But what i am getting is
| ORDER_CONTRACT_NUMBER | TYPE |
|---------------------------------|----------------------|
| 1 | A ONLY |
| 1 | B ONLY |
| 2 | A ONLY |
| 3 | A ONLY |
| 3 | B ONLY |
| 3 | C ONLY |
| 3 | D ONLY |
| 3 | E ONLY |
The Source is :
| ORDER_CONTRACT_NUMBER | PRODUCT CLASS |
|---------------------------------|----------------------|
| 1 | A |
| 1 | B |
| 2 | A |
| 3 | A |
| 3 | B |
| 3 | C |
| 3 | D |
| 3 | E |
Please let me know how i can tackle this. Thank you



