[英]Query to get highest ROW_NUM() value of a column AS only RANK() value of another column
http://sql-ex.ru上的問題#105
問題:統計學家Alice,Betty,Carol和Diana正在對Product表中的行進行編號。 最初,他們都是按照制造者名稱的升序對表格行進行排序。 愛麗絲正在為每行分配一個新的編號,這樣做是按照型號升序對同一制造商的行進行排序。 另外三位統計員將相同的編號分配給同一制造商的所有行。
Betty從1開始分配數字,每個下一個制造商將數字增加1。
卡羅爾將這個編號提供給制造商,而愛麗絲將為該制造商的第一個型號提供該編號。
戴安娜(Diana)將這個編號提供給制造商,愛麗絲(Alice)將為該制造商的最后一個型號提供該編號。
輸出:制造商,型號,編號,分別由Alice,Betty,Carol和Diana分配給表行。
我已經針對Alice(A),Betty(B),Carol(C)提出了此查詢
SELECT maker, model,
ROW_NUMBER() OVER (ORDER BY maker,model ASC) A,
DENSE_RANK() OVER(ORDER BY maker) B,
RANK() OVER (ORDER BY maker) C
FROM product
ORDER BY model ASC
但是我很難找到Diana(D)色譜柱的解決方案。
感謝您的幫助,時間和理解。
SELECT
(SELECT COUNT(*)
FROM product T2
WHERE T2.[maker] <= T1.[maker]) as D
FROM product T1
看例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.