在實際開發(fā)運用中,常會有關(guān)于查詢排名的需求,如查詢某一數(shù)據(jù)完成比率情況,通常可以用自身表先進行相關(guān)計算查詢,再和原表進行關(guān)聯(lián)進行查詢,即可查詢出相關(guān)所需的數(shù)據(jù).
如:要查詢某一農(nóng)田拆遷情況,需查詢拆遷項目名,拆遷完成比率,可這樣查詢:
select tt.projectname ,tt.wzbl, DENSE_RANK() OVER ( ORDER BY tt.wzbl DESC) as bm from
(
select * from kp_confiscate t0,(select kf.promiseunfinished/kf.taskridgepole*0.5+kf.finishedridgepole/kf.taskridgepole as wzbl,kf.id from kp_confiscate kf ) t1
where t0.id=t1.id
) tt;
其中:
promiseunfinished:簽訂協(xié)議未拆完數(shù);
finishedridgepole:已拆完數(shù);
taskridgepole :任務(wù)數(shù)
拆遷完成比例=簽訂協(xié)議未拆完數(shù)/任務(wù)數(shù)x50%+已拆完數(shù)/任務(wù)數(shù)
拆遷完成比例即為所需查詢數(shù)據(jù).
即查詢時,先對自身表進行相關(guān)計算查詢(實際的需求就在這個子查詢中完成),然后作為一個子表,和原表進行關(guān)聯(lián)查詢.
注:子表中查詢時,要指定查詢下某字段,此字段是和原字段進行關(guān)聯(lián)查詢時用的,且應(yīng)為唯一字段,在和原表關(guān)聯(lián)查詢時,不應(yīng)有冗余的數(shù)據(jù)出現(xiàn).
posted on 2009-09-30 17:38
henry1451 閱讀(302)
評論(0) 編輯 收藏