Eri*_*ton 5 sql t-sql database sql-server
以下是我的表,其中包含以下项目:
ProductId ProductName Category Price
1 Tiger Beer $12.00
2 ABC Beer $13.99
3 Anchor Beer $9.00
4 Apolo Wine $10.88
5 Randonal Wine $18.90
6 Wisky Wine $30.19
7 Coca Beverage $2.00
8 Sting Beverage $5.00
9 Spy Beverage $4.00
10 Angkor Beer $12.88
Run Code Online (Sandbox Code Playgroud)
而且我想我category在这张表中只有三张(我可以在这张表中有很多category).我想category在此表中显示每个产品的最高产品价格.
Joh*_*Woo 13
如果你想获得整排,试试这个,
(支持大多数RDBMS)
SELECT a.*
FROM tbProduct a
INNER JOIN
(
SELECT Category, MAX(Price) maxPrice
FROM tbProduct
GROUP BY Category
) b ON a.category = b.category AND
a.price = b.maxPrice
Run Code Online (Sandbox Code Playgroud)
如果你正在使用 MSSQL 2008+
WITH allProducts AS
(
SELECT ProductId,ProductName,Category,Price,
ROW_NUMBER() OVER (PARTITION BY CATEGORY ORDER BY Price DESC) ROW_NUM
FROM tbProduct
)
SELECT ProductId,ProductName,Category,Price
FROM allProducts
WHERE ROW_NUM = 1
Run Code Online (Sandbox Code Playgroud)
要么
SELECT ProductId,ProductName,Category,Price
FROM
(
SELECT ProductId,ProductName,Category,Price,
ROW_NUMBER() OVER (PARTITION BY CATEGORY ORDER BY Price DESC) ROW_NUM
FROM tbProduct
) allProducts
WHERE ROW_NUM = 1
Run Code Online (Sandbox Code Playgroud)