我有一个t1有 4 列的表:
f1
f2
quant
rate
我需要创建一个包含所有记录的视图,t1但列出每个和组quant对应的最小值和最大值。ratef1f2
我在下面有一个解决方案,但这似乎是一个很长的解决方法。有没有更简单的方法可以在 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