COUNT (SELECT DISTINCT LISTAGG(HANDLING_UNIT_ID, ',') WITHIN GROUP(ORDER BY HANDLING_UNIT_ID)
FROM SHIPMENT_LINE_HANDL_UNIT
WHERE ORDER_NO = SL.ORDER_NO) AS QUANTITY
谁能告诉我为什么这行不通?
答案 0 :(得分:2)
您可以在子查询中使用COUNT( DISTINCT ... )
:
SELECT your_outer_values,
( SELECT COUNT( DISTINCT HANDLING_UNIT_ID )
FROM SHIPMENT_LINE_HANDL_UNIT
WHERE ORDER_NO = SL.ORDER_NO ) AS quantity
FROM your_table sl
任何人都可以建议为什么这不起作用吗?
没有GROUP BY
子句,因此LISTAGG
将在整个结果集中工作并将其聚合为包含所有HANDLING_UNIT_ID
值的定界字符串列表的单行。由于LISTAGG
中只有一个值,因此DISTINCT
子句是多余的,外部查询中的COUNT
将始终返回1。