Форум: "Базы";
Текущий архив: 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 :), как и аналогичный с countSELECT 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