Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Как изменить запрос, чтобы получить кол-во строк?   Найти похожие ветки 

 
AngeL B.   (2006-09-24 20:45) [0]

Предположим, у меня есть запрос такого вида

SELECT DISTINCT FieldA, FieldB FROM Table1

который вернет мне набор уникальных пар(!) из значений полей FieldA и FieldB.
Вопрос: Как изменить запрос для MS SQL 2000 чтобы я получил количество таких пар, а не сами пары?

P.S. Использование count(*) не предлагать, т.к. в таблице могут быть другие поля, которые могут увеличивать число уникальных строк. Мне нужно именно кол-во унивельных пар по определенной паре.


 
sniknik ©   (2006-09-24 20:57) [1]

> Использование count(*) не предлагать, ...
нда, это все усложняет... придется извращатся...

вот та например
SELECT Sum(1) AS Col FROM (SELECT DISTINCT FieldA, FieldB FROM Table1) AS a

(заметь count-а нет ;о))


 
Anatoly Podgoretsky ©   (2006-09-24 23:57) [2]


> Использование count(*) не предлагать

За что такая не любовь к count


 
AngeL B.   (2006-09-25 13:27) [3]

:) О, помогло.
Просто выборку после FROM надо было с "AS" использовать. Без него материться, говорит "скобочка не там стоит".
Спасибо.


 
evvcom ©   (2006-09-26 08:44) [4]

> [3] AngeL B.   (25.09.06 13:27)

Да ты что? Без алиаса ругается? Не может быть! :Ф)


 
Johnmen ©   (2006-09-26 09:19) [5]


> AngeL B.   (24.09.06 20:45) 


Какого типа поля FieldA, FieldB?


 
evvcom ©   (2006-09-26 09:43) [6]

> [5] Johnmen ©   (26.09.06 09:19)

А какая разница? Или это намек на блобы? :)


 
Johnmen ©   (2006-09-26 10:51) [7]


> evvcom ©   (26.09.06 09:43) [6]


Нет, не на блобы. Просто при определенных типах и их совокупности можно легко получить желаемое в [0].


 
evvcom ©   (2006-09-26 11:06) [8]

> [7] Johnmen ©   (26.09.06 10:51)

Не понял каким способом типы и их совокупность может влиять на желаемое в [0]. Ответ [1] без count :), как и аналогичный с count
SELECT count(*) FROM (SELECT DISTINCT FieldA, FieldB FROM Table1)
должны работать с любыми типами (не блобами) на любых серверах корректно. Я не прав? Или не понял мысль [7]?


 
Johnmen ©   (2006-09-26 12:39) [9]


> evvcom ©   (26.09.06 11:06) [8]


Легко м.б. решено, но с каунтом. А аффтар сам не понимает своего счастья...:) Его P.S. просто абсурдно...:)


 
sniknik ©   (2006-09-26 12:46) [10]

> Не понял каким способом типы и их совокупность может влиять на желаемое ...
желание идиотское, а типы могли бы помоч, например оба varchar(30)... ->
SELECT Count(DISTINCT FieldA+FieldB) FROM Table1


 
Johnmen ©   (2006-09-26 13:08) [11]


> sniknik ©   (26.09.06 12:46) [10]


Только слагаемые надо "подравнять". А то м.б. "a"+"bc"="ab"+"c"


 
sniknik ©   (2006-09-26 13:27) [12]

логично.


 
AngeL B.   (2006-09-26 15:43) [13]


> SELECT Count(DISTINCT FieldA+FieldB) FROM Table1


Такое работать будет дольше, чем с count от другой выборки.
В моем случае это будут 10-ки тыс. пар и для каждой придется вычислять сумму. IMHO


 
sniknik ©   (2006-09-26 16:22) [14]

> Такое работать будет дольше, чем с count от другой выборки.
> ...
проверь... практика критерий истины, и потом, возможно там у тебя не строки, а числа (мы то этого не знаем)... с которыми операции быстрее.
а на создание дополнительного рекордсета тоже не малые ресурсы требуются.



Страницы: 1 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
11-1139493828
_Gandalf_
2006-02-09 17:03
2006.11.26
Справка по KOL


6-1152000505
Ildar
2006-07-04 12:08
2006.11.26
NetShareAdd используя 502 структуру


2-1162983893
Fedia_l
2006-11-08 14:04
2006.11.26
Ввод даных


2-1162878668
zapadlo
2006-11-07 08:51
2006.11.26
Вопросик!


2-1162847539
eugeniya2006
2006-11-07 00:12
2006.11.26
События, нажатие кнопки