У меня есть таблица t1
с 4 столбцами:
f1
f2
quant
rate
Мне нужно создать представление, которое содержит все записи в t1
, но перечисляет значения min и max quant
с соответствующимиrate
для каждой f1
и f2
группы.
У меня есть решение ниже, но кажется, что это очень длинный обходной путь.Есть ли более простой способ достичь этих результатов в SQL Server 2014?
--Create min
Select
a.f1
,a.f2
,b.min_quant
,a.rate As min_rate
Into t1_min
From t1 As a
Inner Join (
Select
f1
,f2
,MIN(quant) As min_quant
From t1
Group By f1, f2
) As b
On a.f1 = b.f1
And a.f2 = b.f2
And a.quant = b.min_quant
--Create Max
Select
a.f1
,a.f2
,b.max_quant
,a.rate As max_rate
Into t1_max
From t1 As a
Inner Join (
Select
f1
,f2
,MAX(quant) As max_quant
From t1
Group By f1, f2
) As b
On a.f1 = b.f1
And a.f2 = b.f2
And a.quant = b.max_quant
--Create Final
Select
a.f1
,a.f2
,a.quant
,b.min_quant
,c.max_quant
,a.rate
,b.min_rate
,c.max_rate
From t1 As a
Left Join t1_min As b
On a.f1 = b.f1
And a.f2 = b.f2
Left Join t1_max As c
On a.f1 = c.f1
And a.f2 = c.f2