Форум: "Базы";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
ВнизПомогите с 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c