我們在生產實踐中經常會有這樣的需求:分組編號。
如下有一個城市區域表region:
我們需要對上表region按city分組,對region進行排序,得到如下結果:
具體sql如下:
1 select city,region, 2 right('100'+row_number()over(partition by city order by region),2) as region_no 3 from region
此方法主要是運用row_number()開窗函數通過對city進行分組后,再對region進行排序(默認按首字母拼音排序),最終得到我們想要的結果。
當然,還有一種方法同樣可以實現:
select city,region, region_no=right(100+(select count(1)+1 from region where city=a.city and region<a.region),2) from region a