簡體   English   中英

SQL Server:查詢分組

[英]SQL Server : query grouping

我在SQL Server中有一些查詢。 我有兩張桌子

  1. KEYWORD_TEXT

  2. Keyword_relate

keyword_text列:

  1. KEY_ID
  2. 關鍵字

keyword_relate列:

  1. KEY_ID
  2. PRODUCT_ID
  3. 得分
  4. 狀態

keyword_text樣本數據:

----|----------
1   | Pencil
2   | Pen
3   | Books

keyword_relate樣本數據:

----------------------------
Sno| Product | SCore|status
---------------------------
1  | 124     | 2    | 1
1  | 125     | 3    | 1
2  | 124     | 3    | 1
2  | 125     | 2    | 1    

從中我想得到product_id ,按關鍵字分組並且得分最高

假設第一個表的key_id在第二個表中為Sno 您可以使用ROW_NUMBER

WITH CTE AS
(
    SELECT Product AS ProductID, Score As MaxScore,
           RN = ROW_NUMBER() OVER (PARTITION BY kt.key_id ORDER BY Score DESC)
    FROM  keyword_text kt INNER JOIN keyword_relate kr
    ON kt.key_id = kr.Sno
)
SELECT ProductID, MaxScore
FROM CTE
WHERE RN = 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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