0
lanc2233
30.03.17
✎
13:35
|
Есть таблица Field1,Field2,Field3
Можно-ли сделать такой запрос :
выбрать строки с максимальным значением колонки Field3 в разрезе поля Field1?
Например :
Дано :
А, "Значение1", 10
А, "Значение2", 30
А, "Значение3", 20
Б, "Значение4", 10
Б, "Значение5", 20
Б, "Значение6", 30
Б, "Значение7", 40
Нужно получить :
А, "Значение2", 30
Б, "Значение7", 40
Тоесть строки, где максимальные значения А и Б
|
|
5
Naf2017
30.03.17
✎
13:40
|
select T.Field1, T.Field2, T.Field3
from T
inner join
(select
Field1,
MAX(Field3) as Field3
from T
group by Field1) as X
on T.Field1=X.Field1
and T.Field3=X.Field3
|
|
6
Живой Ископаемый
30.03.17
✎
13:48
|
ВЫБРАТЬ
"А" КАК Поле1,
"Значение1" КАК Поле2,
10 КАК Поле3
ПОМЕСТИТЬ СырыеДанные
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"А",
"Значение2",
30
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"А",
"Значение3",
20
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Б",
"Значение4",
10
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Б",
"Значение5",
20
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Б",
"Значение6",
30
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Б",
"Значение7",
40
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СырыеДанные.Поле1,
МАКСИМУМ(СырыеДанные.Поле3) КАК Поле3
ПОМЕСТИТЬ СтрокиСмасимальнымиСуммами
ИЗ
СырыеДанные КАК СырыеДанные
СГРУППИРОВАТЬ ПО
СырыеДанные.Поле1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СтрокиСмасимальнымиСуммами.Поле1,
СтрокиСмасимальнымиСуммами.Поле3,
СырыеДанные.Поле2
ИЗ
СтрокиСмасимальнымиСуммами КАК СтрокиСмасимальнымиСуммами
ЛЕВОЕ СОЕДИНЕНИЕ СырыеДанные КАК СырыеДанные
ПО СтрокиСмасимальнымиСуммами.Поле1 = СырыеДанные.Поле1
И СтрокиСмасимальнымиСуммами.Поле3 = СырыеДанные.Поле3
|
|