Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подсчитать кол-во уникальных значений поля с учетом NULL


atruhin ©   (2005-05-17 12:27:00) 

Т.е. проблема в том, что count(distinct Field) не учитывает значения NULL, вложенные запросы типа select count(*) from (select distinct Field ...) в IB не работают. Можно ли решить эту задачу одним запросом без VIEW и  ХП


Zacho   (2005-05-17 14:21:00) [1]

Johnmen ©   (17.05.05 14:17) [13]

О !! Точно ! Проктология конечно, но должно работать :)


Johnmen   (2005-05-17 14:17:00) [2]

>Zacho ©   (17.05.05 14:13) [12]

+(select count(1) from .. where exists ...)


Zacho   (2005-05-17 14:13:00) [3]

Johnmen ©   (17.05.05 14:12) [11]

Как ? На чистом IB SQL в одном запрсе ?
Я сходу не придумал.


Johnmen   (2005-05-17 14:12:00) [4]

>Zacho ©   (17.05.05 13:39) [5]

Ну это легко исправить.


Polevi   (2005-05-17 14:10:00) [5]

печально


Zacho   (2005-05-17 14:07:00) [6]

Polevi ©   (17.05.05 13:57) [8]

Ну нету такого в IB, о чём уже упоминалось в посте автора ветки :)


Polevi   (2005-05-17 13:57:00) [7]

select count(*) from (select field group by field)


Polevi   (2005-05-17 13:56:00) [8]

select count(*) group by field


Polevi   (2005-05-17 13:56:00) [9]

упс, сорри


Zacho   (2005-05-17 13:39:00) [10]


> А что не так ?


В этом случае будет неверный результат :) Я именно про запрос count(distinct Field) + 1
и про случай, когда несколько записей с NULL нужно считать одинаковыми.


Johnmen   (2005-05-17 13:32:00) [11]

>Zacho ©   (17.05.05 13:25) [3]

"На нет и вопросов нет" (с)
:)

А что не так ?


Zacho   (2005-05-17 13:25:00) [12]


> Johnmen ©   (17.05.05 13:05) [2] [Новое
>сообщение][Ответить]
> count(distinct Field) + 1


А если в таблице вообще нет записей с NULL ? :)


Johnmen   (2005-05-17 13:05:00) [13]

count(distinct Field) + 1
или
count(distinct Field) + (select count(*) ... where Field is null)


Zacho   (2005-05-17 12:59:00) [14]

А ты несколько записей с NULL собираешься считать за одну уникальную или нет ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо