這是我的場景... 多個項目類型具有多個價格的多個項目。 想要選擇顯示最高價格的所有類型的項目。無法弄清楚如何獲得最大值?SQL查詢獲取列的最大值並顯示每一行
輸入:
ProductId ProductType Description Price
1所述的烤豆1.29
1乙烤豆1.98
輸出:
ProductId ProductType Description Price
1所述的烤豆1.98
1 B烤豆豆1.98
有什麼建議嗎?
這是我的場景... 多個項目類型具有多個價格的多個項目。 想要選擇顯示最高價格的所有類型的項目。無法弄清楚如何獲得最大值?SQL查詢獲取列的最大值並顯示每一行
輸入:
ProductId ProductType Description Price
1所述的烤豆1.29
1乙烤豆1.98
輸出:
ProductId ProductType Description Price
1所述的烤豆1.98
1 B烤豆豆1.98
有什麼建議嗎?
Select ProductId, ProductType, Description, MaxByDesc.MaxPrice
From Product
Join (
Select Description, Max(Price) As MaxPrice
From Product
Group By Description
) As MaxByDesc
On MaxByDesc.Description = Product.Description
如果您使用的是SQL Server 2005或更高版本:
Select ProductId, ProductType, Description
, Max(Price) Over (Partition By Description) As MaxPrice
From Product
試試這個:
SELECT ProductId,
ProductType,
Description,
b.price
FROM <YOUR_TABLE> a,
(SELECT MAX(price) price FROM <YOUR_TABLE>) b
對於那些誰愛ANSI語法:
SELECT ProductId,
ProductType,
Description,
b.price
FROM <YOUR_TABLE> a INNER JOIN
(SELECT MAX(price) price FROM <YOUR_TABLE>) b
ON 1=1
托馬斯,對,除了你需要按類型分組:
Select ProductId, ProductType, Description, MaxByDesc.MaxPrice
From Product
Join (
Select Description, Max(Price) As MaxPrice
From Product
Group By ProductType
) As MaxByDesc
On MaxByDesc.ProductType = Product.ProductType
另一種方式:
SELECT ProductId
, ProductType
, Description
, (SELECT MAX(price)
FROM Product pg
WHERE pg.Description = p.Description
) AS MaxPrice
FROM Product p
更新了帖子我投票贊成托馬斯的答案,儘管這兩者中的任何一個都是。 – 2011-04-12 19:55:07
它的工作原理。非常感謝!我在我的子查詢中使用ROW_NUMBER()來獲取最新的Price。不知道我可以使用MAX()與分區BY ... – let007live4ever 2011-04-12 18:24:28