![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как подсчитать кол-во уникальных значений поля с учетом 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 собираешься считать за одну уникальную или нет ?