Граф SELECT DISTINCT LISTAGG - PullRequest
       0

Граф SELECT DISTINCT LISTAGG

0 голосов
/ 30 ноября 2018

Мне интересно, как получить счетчик подзапроса / значения 'HANDLING_UNIT_ID' Ниже показано, что у меня есть:

COUNT (SELECT DISTINCT LISTAGG (HANDLING_UNIT_ID, ',') WITHIN GROUP (ЗАКАЗАТЬ HANDLING_UNIT_ID) ОТ SHIPMENT_LINE_HANDL_UNIT ГДЕ ORDER_NO = SL.ORDER_NO) КАК КОЛИЧЕСТВО

1 Ответ

0 голосов
/ 30 ноября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...