原始数据的结果create view "data" as select [...]
声明:
projectId resourceId num
1052785922 318153743 10
1052785922 318153743 20
1052785922 318153743 30
1052785936 -2097765361 20
1052785936 318153743 10
1052785936 528513104 30
1052786014 -2097765361 20
1052786014 318153743 10
1052786014 528513104 30
1052786021 -2097765361 20
1052786021 318153743 10
1052786021 528513104 30
1052786099 -2097765361 20
1052786099 318153743 10
我尝试了上述数据进行过滤,仅每个专案编号MAX(NUM)获得的那些行。
预计结果:
projectId resourceId num
1052785922 318153743 30
1052785936 528513104 30
1052786014 528513104 30
1052786021 528513104 30
1052786099 -2097765361 20
我知道有多大的可能性,以自左连接上num = max(num)
窗口功能类似max(num) over ( partition by projectId )
或CTE,但我不知道是否有任何其他的可能性,只选择那些具有最高值NUM。
背景:以上数据只是一个大视图,这是相对复杂的光斑。 既然是一个观点,我不会去想的CTE或任何这样的。 在视图中提供的数据是养活规划,应用程序和运行是非常重要的。 我不wan't奋斗,在性能上昂贵的视图选择结束。
上述“原始数据”,是从几十个表组合数据的图的结果。 我正在寻找一种方式来过滤直接一杆分组最大值在该视图的创建语句,而不必把一个额外的层或查看之间!