[英]SQL generate sequential id's based on other column(s)
也許最好用一個例子來說明我要做什么:)
說我有下表
SELECT *
INTO #OrderRanking
FROM (
SELECT 'Jim', 1000
UNION ALL
SELECT 'Jim', 500
UNION ALL
SELECT 'Jim', 500
UNION ALL
SELECT 'Jim', 3000
UNION ALL
SELECT 'Bob', 1000
UNION ALL
SELECT 'Bob', 2000
UNION ALL
SELECT 'Bob', 500
UNION ALL
SELECT 'Bob', 500
UNION ALL
SELECT 'Fred', 500
) AS t(Customer, OrderTotal)
我想要的是SELECT
語句中的以下結果
Customer, OrderTotal, CustomerId
'Jim', 1000, 1
'Jim', 500, 1
'Jim', 500, 1
'Jim', 3000, 1
'Bob', 1000, 2
'Bob', 2000, 2
'Bob', 500, 2
'Bob', 500, 2
'Fred', 500, 3
我的實際查詢有點復雜,其中源列大於2。
我是個pil子
SELECT *, DENSE_RANK() OVER(ORDER BY Customer DESC)
FROM #OrderRanking
我認為這應該涵蓋所有情況!
select customer, ordertotal, dense_rank() over(order by total desc, customer asc)
from (select *, sum(ordertotal) over(partition by customer) total from #orderranking) t
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.