Имя: Пароль:
IT
 
Вопрос по SQL. выбрать строки с максимальным значением колонки Field3 в разрезе поля Field1
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

Тоесть строки, где максимальные значения А и Б
1 1dvd
 
30.03.17
13:37
можно
2 Волшебник
 
модератор
30.03.17
13:37
GROUP BY + MAX
3 Fragster
 
гуру
30.03.17
13:38
(2) там еще где-то INNER JOIN должен быть
4 Nuobu
 
30.03.17
13:39
(3) Посередине.
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
7 1dvd
 
30.03.17
13:50
(6) афигенно! русифицированный синтаксис скуля
8 lanc2233
 
30.03.17
13:54
(5) Спасибо, получилось.