簡體   English   中英

查詢以獲取一列的最高ROW_NUM()值,僅獲得另一列的RANK()值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM