Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли исхитрится и составить аналог такого запроса? / 12 сообщений из 12, страница 1 из 1
13.03.2004, 09:10
    #32440748
noir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Код: plaintext
1.
2.
3.
4.
5.
SELECT count(*) 
FROM ( 
          SELECT DISTINCT country, province  
          FROM customer
         ) 


Это надо обязательно сделать ОДНИМ запросом, никаких данных о таблице, по которой его прийдется пускать заранее нет (даже о том, есть ли у нее PK.) Никаких модификаций базы делать нельзя.
...
Рейтинг: 0 / 0
13.03.2004, 09:25
    #32440750
Andrew Kruchinin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Это подойдет?
...
Рейтинг: 0 / 0
13.03.2004, 09:41
    #32440751
noir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Отнюдь :(

count(distinct ) больше чем по одному полю можно только в MySql делать...
...
Рейтинг: 0 / 0
13.03.2004, 11:23
    #32440764
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Код: plaintext
1.
2.
3.
4.
select sum( 1 /(select count( 1 ) from customer c2
           where c2.country = c1.country and
                    c2.province = c1.province))
from customer c1
...
Рейтинг: 0 / 0
13.03.2004, 11:40
    #32440770
noir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Красиво... Только так тоже нельзя, sum(select) для IB - энто ашипка синтаксисская, а не функция... Или я не прав?
...
Рейтинг: 0 / 0
13.03.2004, 11:41
    #32440771
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
ну, если время не важно :-)
...
Рейтинг: 0 / 0
13.03.2004, 11:53
    #32440782
noir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Важно, на самом деле... Но тут уж хоть как-нибудь, а то как это, для Аксеса это можно, для мускуля (как раз дистинктом) можно, для Оракла - два раза можно, а для IB - фигсмаслом...

Вопрос возник при портировании одной интересной софтины, где на запросах такого типа много чего построено. SQL генерится динамически, на момент создания запроса ничего кроме нужных колонок и таблицы у метода нет и быть не может, а так как рушить многоплатформенность нехорошо (да и лениво), то считать это после фетча - тоже не выход...
...
Рейтинг: 0 / 0
13.03.2004, 12:15
    #32440786
Andrew Kruchinin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
А что мешает сделать вот так?

SELECT count(
distinct cast(
country as char(50)) ||
'-' ||
cast(province as char(50)))
from customer
...
Рейтинг: 0 / 0
13.03.2004, 12:27
    #32440792
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
клёво :-)
мне это нравится :-)
...
Рейтинг: 0 / 0
13.03.2004, 12:34
    #32440793
noir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
В принципе, ничего не должно...
...
Рейтинг: 0 / 0
13.03.2004, 13:13
    #32440804
Andrew Kruchinin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
noirВ принципе, ничего не должно...

Что не должно? Я проверил это запрос - у меня работает. правда с другими полями и на другой базе, но запрос рабочий. Просто лепишь поля в одно и все. С приведением типов там можешь сам поизголятся, смотря какие поля исходные идут. Тебе же количество записей посчитать нужно, почему бы и нет? Скорость правда будет не ахти, но на маленькой базе достаточная. Индексы вроде работать по любому не будут. так что с этим смирись. NATURAL он NATURAL и есть
...
Рейтинг: 0 / 0
13.03.2004, 14:42
    #32440853
noir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли исхитрится и составить аналог такого запроса?
Помешать ничего не должно :) Жаль, хэш-кода нельзя взять стандартными средствами, была б вообще ляпота...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли исхитрится и составить аналог такого запроса? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]