问题描述
|
这是我的情况...
具有多种商品类型且价格不同的多种商品。
想要选择所有类型的商品,以显示最高价格。无法弄清楚如何获得最大值?
输入:
ProductId ProductType Description Price
1焗豆1.29
1 B焗豆1.98
输出:
ProductId ProductType Description Price
1焗豆1.98
1 B焗豆1.98
有什么建议么?
解决方法
尝试这个:
SELECT ProductId,ProductType,Description,b.price
FROM <YOUR_TABLE> a,(SELECT MAX(price) price FROM <YOUR_TABLE>) b
对于那些喜欢ANSI语法的人:
SELECT ProductId,b.price
FROM <YOUR_TABLE> a INNER JOIN
(SELECT MAX(price) price FROM <YOUR_TABLE>) b
ON 1=1
,Select ProductId,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,Max( Price ) Over ( Partition By Description ) As MaxPrice
From Product
,托马斯,对,除了您需要按类型分组:
Select ProductId,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,( SELECT MAX(price)
FROM Product pg
WHERE pg.Description = p.Description
) AS MaxPrice
FROM Product p