为了简短起见,我在网上找到了一个教程并按照这一点进行操作:
http://www.tizag.com/mysqlTutorial/mysqlmax.php
SELECT type, MAX(price) FROM products GROUP BY type
我的问题是:
我如何回应哪种“衣服”最贵(在这种情况下是“衬衫”)?
更新:
对不起伙计们,我的坏人.我需要让自己更清楚.我正在寻找的是一个解决方案,显示每个“名称”最昂贵的地方:
name type price
Clothing Blouse 34.97
Toy Playstation 89.95
Music Country Tunes 21.55
最佳答案 请尝试以下查询:
解决方案#1:
SELECT
products.name,
products.type,
products.price
FROM products
INNER JOIN
(
SELECT type,MAX(price) max_price
FROM products
GROUP BY type ) t
ON products.type = t.type
AND products.price = t.max_price;
解决方案#2:
SELECT
products.name,
products.type,
products.price
FROM
products
WHERE (type, price) IN (
SELECT type, MAX(price) max_price
FROM products
GROUP BY type )
编辑:
注意:如果两种解决方案共享相同的最高价格,则它们可能会为您提供相同类型的多种产品.
如果您最多只想要每种类型的一个项目,那么您需要在最后一行再次分组.
因此,对于这两种解决方案,最后一行将是:
GROUP BY products.type,products.price