如果你是sqlserver的話,語法如下

為清河門等地區用戶提供了全套網頁設計制作服務,及清河門網站建設行業解決方案。主營業務為網站建設、成都做網站、清河門網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
select?*,row_number()?over(partition?by?[總分]?order?by?[總分]??desc)?as?[排名]?from?(select?[姓名],sum([獎懲分值])?as?[總分]?FROM?[積分明細表]?group?by?[姓名])?A
with tt as(
select '88' A1,'9' A2
union all
select '55' A1,'9' A2
union all
select '55' A1,'4' A2
union all
select '99' A1,'4' A2
union all
select '99' A1,'1' A2
)
select A1,DENSE_RANK() OVER(ORDER BY A1 desc) as A_1,A2,DENSE_RANK() OVER(ORDER BY A2 desc) as A_2 from tt
select A1,RANK() OVER(ORDER BY A1 desc) as A_1,A2,RANK() OVER(ORDER BY A2 desc) as A_2 from tt
你需要使用sqlserver提供的排名函數進行處理
比如
row_number()
rank()
dense_rank()
ntile()
在Sqlserver2005+中:
利用:Row_Number() ?over(order by chengji) 可以顯示排名
--sql如句如下:
select?*,row_number()??over(order?by?chengji)?paiming??from?Stu
如有問題可以追問,我當及時回答。
希望能幫到你!
這里userid設置為1001,這里先統計每名課程成績大于張三成績的學生數,然后在統計的數上加1即為張三的排名。這里是mysql的測試,如需在oracle上使用,請把IFNULL函數換成oracle的NVL函數。根據tab后面的數字閱讀會清楚一點,可以一個一個tab先執行看結果。
select tab4.kcid,IFNULL((select tab5.kcrank from (select tab3.kcid as kcid,count(*) as kcrank from (select tab2.* from chengji tab2 , (select * from chengji where userid=1001) tab1 where tab2.kcid=tab1.kcid and tab2.cj tab1.cj) tab3 group by tab3.kcid) tab5 where tab4.kcid=tab5.kcid),0)+1 as kcrank from chengji tab4 where tab4.userid=1001
分享名稱:sqlserver排名,sql查排名
分享鏈接:http://www.kartarina.com/article20/hdpjco.html
成都網站建設公司_創新互聯,為您提供網站設計、關鍵詞優化、做網站、標簽優化、搜索引擎優化、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯