Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Помогите с запросом в Paradox / 7 сообщений из 7, страница 1 из 1
20.03.2007, 11:36
    #34402266
Spot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
В DBD делаю запрос (БД Paradox)
Код: plaintext
1.
2.
3.
4.
5.
select rayon
from
(select a.f_4 as rayon, count(a.f_4) as kol
from Prefix a
group by rayon
order by kol desc)
Выходит ошибка
Код: plaintext
Invalid use of Keyvord
Внутренний подзапрос работает, выводит
rayon kol118 3167114 994121 43148 37115 18126 16133 13147 9142 8120 6132 4116 3122 3146 2144 2143 2134 2137 2131 2128 2139 1140 1141 1136 1135 1145 1 0
1. Почему первый запрос не выполняется?
2. Как получить район, у которого количество максимальное?
...
Рейтинг: 0 / 0
20.03.2007, 16:20
    #34403418
paradox_addict
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
Насколько я помню надо сохранить внутренний запрос в *.sql файл,
в доке должно быть про это написано.
...
Рейтинг: 0 / 0
21.03.2007, 11:31
    #34405155
ЮВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
SpotВ DBD делаю запрос (БД Paradox)
Код: plaintext
1.
2.
3.
4.
5.
select rayon
from
(select a.f_4 as rayon, count(a.f_4) as kol
from Prefix a
group by rayon
order by kol desc)
Выходит ошибка
Код: plaintext
Invalid use of Keyvord

1. Почему первый запрос не выполняется?



Ситуация, возможно, аналогична СУБД ЛИНТЕР.
Там тоже подзапрос отдельно будет выполняться, но в паре с основным запросом будет фиксироваться ошибка, т. к. на подзапросы есть ограничения, в частности, нельзя использовать опции ORDER BY, FETCH FIRST, LIMIT и некоторые др.
...
Рейтинг: 0 / 0
21.03.2007, 12:11
    #34405355
ЮВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
SpotВ DBD делаю запрос (БД Paradox)
Код: plaintext
1.
2.
3.
4.
5.
select rayon
from
(select a.f_4 as rayon, count(a.f_4) as kol
from Prefix a
group by rayon
order by kol desc)
Выходит ошибка
Код: plaintext
Invalid use of Keyvord
Внутренний подзапрос работает, выводит
2. Как получить район, у которого количество максимальное?


Наверное, надо выбрать первую запись полученной в подзапросе выборки (на примере СУБД ЛИНТЕР):
select a.f_4 as rayon, count(a.f_4) as kol
from Prefix a
group by rayon
order by kol desc fetch first 1;
...
Рейтинг: 0 / 0
21.03.2007, 12:19
    #34405384
Бабичев Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
Spot
1. Почему первый запрос не выполняется?
2. Как получить район, у которого количество максимальное?
1) ORDER BY в подзапросе не всякая СУБД понимает
2) Попробуй вот так (к сожалению, не везде работает):
Код: plaintext
1.
2.
3.
select a.f_4 as rayon, count(a.f_4) as kol
from Prefix a
group by rayon
having count(a.f_4) = (select max(count(a.f_4)) from Prefix a group by rayon) 
...
Рейтинг: 0 / 0
22.03.2007, 10:08
    #34407681
Spot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
2 запрос не работает.
Почему в Paradox-е запросы с вложенными подзапросами работают очень медленно?
Например, такой запрос у меня выполняется 5 минут (в каждой таблице около 10 тыс. записей, Комп P-IV 3000, ОЗУ 512)
Код: plaintext
1.
2.
3.
update object_zu_18 a
set a.f_18_6=(select b.f_20_8
from Object_zu_20 b
where b.id=a.id)
Как-нибудь можно сократить время выполнения?
...
Рейтинг: 0 / 0
22.03.2007, 18:22
    #34409717
ЮВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом в Paradox
SpotПочему в Paradox-е запросы с вложенными подзапросами работают очень медленно?
Например, такой запрос у меня выполняется 5 минут (в каждой таблице около 10 тыс. записей, Комп P-IV 3000, ОЗУ 512)
Код: plaintext
1.
2.
3.
update object_zu_18 a
set a.f_18_6=(select b.f_20_8
from Object_zu_20 b
where b.id=a.id)

Здесь сначала из первой таблицы выбираются значения a.id (скажем, их 10 тыс., и для каждого найденного a.id каждый раз выполняется подзапрос, скажем, поиск тоже из 10 тыс . записей, возможно даже без использования индекса). Перемножим первые 10 тыс. на вторые 10 тыс. получим большой объем работы.

По-видимому, надо перестраивать запрос.
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Помогите с запросом в Paradox / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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