Вы можете использовать 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.