使用sqlserver 給每組記錄順序編號

來源:互聯網
上載者:User

標籤:sqlserver   分組排序   rownumber   

使用sqlserver 給每組記錄順序編號

    項目業務需要,給每組記錄編號,方便在行轉列時,正對每個人定位到具體某行;SQL Server 2005後之後,引入了row_number()函數,row_number()函數的分組排序功能使這種操作變得非常簡單。樣本如下:

    首先建立表,並錄入測試資料。

create table test_001(
    user_id varchar(32),
    price   decimal(10,0)
)

insert into test_001 values(‘001‘,4000);
insert into test_001 values(‘001‘,3900);
insert into test_001 values(‘001‘,3800);

insert into test_001 values(‘002‘,4000);
insert into test_001 values(‘002‘,3800);
insert into test_001 values(‘002‘,3700);

執行如下語句,給每組資料進行重新編號;
select ROW_NUMBER() over(PARTITION by user_id order by price desc) sort_num ,USER_ID ,price
from test_001
order by USER_ID,price desc
結果如下:


使用sqlserver 給每組記錄順序編號

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.