Главная страница
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.016 c
4-64879
daos
2002-03-20 04:47
2002.05.20
Как убить (закрыть) Internet Explorer?


1-64702
drt
2002-05-06 14:37
2002.05.20
TScrollbar


1-64710
demon-777
2002-05-06 18:04
2002.05.20
Как скрыть и показать курсор


3-64482
DL
2002-04-22 18:19
2002.05.20
BD


1-64655
VJar
2002-05-07 14:15
2002.05.20
Запрет на перетаскивание