Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.045 c
15-1162913600
Real
2006-11-07 18:33
2006.11.26
7-ое ноября: С праздником, товарищи!


2-1162888716
V.I.P
2006-11-07 11:38
2006.11.26
выборка по дате


2-1162916661
Oyster
2006-11-07 19:24
2006.11.26
Dialup из Delphi


2-1162910749
Juri
2006-11-07 17:45
2006.11.26
Indy


4-1153121367
Чапаев
2006-07-17 11:29
2006.11.26
Буква загрузочного тома





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский