Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Distinct не работает после list  [new]
Kos-2010
Member

Откуда:
Сообщений: 177
Доброе время суток,
У меня есть такое «
view
», с агрегатными функциями:

CREATE OR ALTER VIEW STATISTIC_CONTRACT(
    PROPOSAL_ID,
    SORT_WORK_LIST,
    COUNT_SORT_WORK,
    DEPARTMENT_EXECUTE_LIST,
    COUNT_DEPARTMENT_EXECUTE)
AS
select d.PROPOSAL_ID,
list(distinct(sw.NAME_SORT_WORK), ', ') as SORT_WORK_LIST,
count(distinct(sw.NAME_SORT_WORK)) as COUNT_SORT_WORK,
list(distinct(dp.NAME_SHORT), ', ') as DEPARTMENT_EXECUTE,
count(distinct(c.DEPARTMENT_ID_EXECUTE)) as COUNT_DEPARTMENT_EXECUTE
from DEVICES d
join SORT_WORK sw on d.SORT_WORK_ID = sw.ID
join CONTRACT c on c.PROPOSAL_ID = d.PROPOSAL_ID and c.DEPARTMENT_ID_EXECUTE <> 13
join DEPARTMENT dp on dp.ID = c.DEPARTMENT_ID_EXECUTE
group by d.PROPOSAL_ID
;

Результатом которого в «SORT_WORK_LIST», является несколько строк с одинаковыми значениями «покраска, побелка».

Вопрос: почему на этот результат view не работает запрос

select distinct SORT_WORK_LIST from STATISTIC_CONTRACT where SORT_WORK_LIST <> 'null'


т.е. результатом является теже несколько строк с одинаковыми значениями «покраска, побелка».

И как мне ограничить этот результат?
заранее спасибо
10 фев 19, 14:41    [21805658]     Ответить | Цитировать Сообщить модератору
 Re: Distinct не работает после list  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47380

distinct в принципе не работает на блобы.

Posted via ActualForum NNTP Server 1.5

10 фев 19, 14:49    [21805662]     Ответить | Цитировать Сообщить модератору
 Re: Distinct не работает после list  [new]
Kos-2010
Member

Откуда:
Сообщений: 177
Dimitry Sibiryakov
distinct в принципе не работает на блобы.


а что, в таком случае можно предпринять? Кроме отсеевания дублей в DataSet.
10 фев 19, 16:28    [21805715]     Ответить | Цитировать Сообщить модератору
 Re: Distinct не работает после list  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8283
откусить substring-ом требуемый кусочек блоба, при-cast-ить к varchar и привет.
Хотя логика сего действа ускользает от меня, ибо надо еще и сортировке внутри блоба позаботиться заранее.
10 фев 19, 16:35    [21805720]     Ответить | Цитировать Сообщить модератору
 Re: Distinct не работает после list  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 635
Kos-2010,

напрашивается select from select. Сначала применить distinct, потом list.
11 фев 19, 12:12    [21806236]     Ответить | Цитировать Сообщить модератору
 Re: Distinct не работает после list  [new]
Arioch
Member

Откуда:
Сообщений: 10807
а list - всегда блобы?

вроде же это исправляли, чтобы тип результата соотвествовал аргументу? или я с другими функциями путаю?
12 фев 19, 14:52    [21807467]     Ответить | Цитировать Сообщить модератору
 Re: Distinct не работает после list  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9468
Arioch,

ошибаешься. LIST всегда возвращает BLOB, осюда и всякие ограничения на DISTINCT и ORDER в оконных функциях
12 фев 19, 15:27    [21807521]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить