with as语句性能求优化
语句如下:
WITH g AS( select owner, steps from T1 ) SELECT g.Owner FROM g WHERE g.Steps = (SELECT MIN(Steps) FROM g)
with中的子查询很快,只有几条数据,<0.1秒,但是加了后面的语句,用来取出结果中最少的那个step所对应的用户,结果需要10秒左右,我不知道性能消耗在哪里?应该如何优化?
------解决方案--------------------
select *
from (select t1.Owner,
rank() over(order by t1.Steps) myrank
from t1) t
where t.myrank = 1
这样你试试。