[MSSQL] 外部資料表有多筆資料時,如何JOIN單一資料

  • 209
  • 0
  • 2022-03-08

[MSSQL] 外部資料表有多筆資料時,如何JOIN單一資料

有一個需求如下:

列出客戶資訊與購買最大的訂單金額

其表格設計如下:

 

 

 

 

 

 

預期呈現資料如下:

 

 

 

如上圖所示,

主表資訊為「客戶編號」、「客戶名稱」,

而外部表資訊則只需要取個別客戶「購買金額」最大值,

SQL指令寫法可如下:

SELECT 
	c.客戶編號, 
	c.客戶名稱, 
	o.購買金額 AS 最大購買金額
FROM 客戶 c
LEFT JOIN (
	SELECT 
		ROW_NUMBER() OVER (PARTITION BY 客戶編號 ORDER BY 購買金額 DESC) SN,	-- 依據客戶編號劃分,將購買金額倒序並產生流水序號
		客戶編號, 
		購買金額
	FROM 訂單
) AS o ON 
	o.客戶編號 = c.客戶編號 
	AND o.SN = 1  -- 因為使用倒序,所以流水序號1的資料為最大購買金額

如此一來就可以達成效果

 

Write By Charley Chang 


新手發文,若有錯誤還請指教,
歡迎留言或Mail✉給我

創用 CC 授權條款


本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.