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

Вниз

Помогите с SELECTом   Найти похожие ветки 

 
Anders ©   (2002-04-23 12:41) [0]

Есть таблица t1:

f1 summa recnum
5 100 1
5 70 2
7 200 1
7 50 2
7 150 3

Вопрос: Как без подзапроса получить следующую выборку (по полю f1 с максимальным значением поля recnum):

f1 summa recnum
5 70 2
7 150 3

Бо с позапросом жутко тормозит (20000 записей в массиве)

Заранее благодарен.


 
Lusha ©   (2002-04-23 12:55) [1]

Как без подзапроса получить следующую выборку...

А как Вы это делаете с подзапросом...


 
Anders ©   (2002-04-23 13:09) [2]

Делаю так:

SELECT f1, summa, recnum
FROM t1 t
WHERE recnum = (SELECT max(recnum)
FROM t1
WHERE f1=t.f1 )

И я в печали ...


 
Lusha ©   (2002-04-23 13:21) [3]

А так...

select f1, sum, recnum from t1
where (f1, recnum) in (select f1, max(recnum) from t1 group by f1);


 
Johnmen ©   (2002-04-23 13:37) [4]

SELECT f1, summa, recnum
FROM t1 t
WHERE recnum = (SELECT max(recnum)
FROM t1)


 
Val ©   (2002-04-23 13:39) [5]

>Johnmen © (23.04.02 13:37)
не учитываете f1, выборка произойдет :
7 150 3


 
Johnmen ©   (2002-04-23 13:50) [6]

SELECT f1, f2, f3
FROM tbltest1 T
WHERE f3 = (SELECT max(f3)
FROM tbltest1 U
WHERE T.f1=U.f1)

Железно работает !


 
MVova ©   (2002-04-23 13:52) [7]

SELECT f1, summa=min(Summa) , recnum = Max(recnum)
FROM t1
GROUP BY F1


 
Anders ©   (2002-04-23 13:52) [8]

Спасибо, полегчало :)

Выборка по одному значению поля f1 вместо 3с. производится
за 1.3с.

Но, как в мультике,"маловато будет ...".

Как еще, можно ли, ушустрить выборку?

Бо значений поля f1 много.



 
Johnmen ©   (2002-04-23 13:58) [9]

Ушустрить выборку можно, если не применять вложенных подзапросов,
но в твоем случае это нереально !


 
Anders ©   (2002-04-23 14:00) [10]

>> MVova
>> SELECT f1, summa=min(Summa) , recnum = Max(recnum)
>> FROM t1
>> GROUP BY F1

Такая конструкция FROM не находит, и идею не понял ее


 
Lusha ©   (2002-04-23 14:05) [11]

>Anders © (23.04.02 13:52)
А индексы задействованы?


 
panov ©   (2002-04-23 14:05) [12]

>Anders
А индексы созданы?


 
Anders ©   (2002-04-23 14:10) [13]

Исходный массив t1 - это представление (view)


 
Anders ©   (2002-04-23 14:14) [14]

Вдогонку: значения поля recnum формируются в представлении


 
Johnmen ©   (2002-04-23 14:15) [15]

>Anders © : Только один вопрос : Johnmen © (23.04.02 13:50) работает или нет ?


 
MVova ©   (2002-04-23 14:16) [16]

>> Anders
>> Такая конструкция FROM не находит
не находит чего

у меня результат
5 70.0 2
7 50.0 3

извиняюсь но тут одна неточность если добавить еще запись
7 300 3
будет выбрана только одна из тех у которых f1 = 7


 
Anders ©   (2002-04-23 14:17) [17]

Да, он то у меня и показывал 3с. на одно значение поля f1


 
Anders ©   (2002-04-23 14:25) [18]

>> MVova © (23.04.02 14:16)
Под ORACLE работает такая конструкция:

SELECT f1, min(Summa) summa, Max(recnum) recnum
FROM t1
GROUP BY F1

Но у меня вопрос в другом. см. начало дискуссии




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

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

Наверх




Память: 0.5 MB
Время: 0.017 c
1-64696
Kekc
2002-05-04 22:04
2002.05.20
Сравнение TBitmap


3-64540
maxim2
2002-04-24 10:00
2002.05.20
Как программно удалить все записи из таблицы


1-64704
allrussia
2002-05-05 23:30
2002.05.20
Добрый вечер! Срочно нужет ответ на два простых вопроса...


4-64882
Alexander
2002-03-20 13:19
2002.05.20
Как, зная Handle TLabel, нарисовать на ней что-нибудь (изображение)


1-64622
tovSuhov
2002-05-08 10:46
2002.05.20
ProcessMessages