为了简短起见,我在网上找到了一个教程并按照要点进行操作: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
答案 0 :(得分:2)
尝试以下查询:
解决方案#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 )
修改强>
注意:如果两个解决方案的价格相同type
,则这两种解决方案可能会为您提供同一maximum
下的多个产品。
如果您严格要求每种类型的最多一个项,那么您需要在最后一行再次 group by
。
因此,对于这两种解决方案,最后一行将是:
GROUP BY products.type, products.price
答案 1 :(得分:0)
然后,这将按降价(从最昂贵的价格开始)订购商品,然后只显示第一个商品......
SELECT name, MAX(price)
FROM products
WHERE type = 'Clothing'
ORDER BY price DESC
LIMIT 1
答案 2 :(得分:0)
您可以通过简单地订购价格并将记录数量限制为1来找到最昂贵(最高价值)的服装。
SELECT name
FROM products
WHERE type = 'Clothing'
ORDER BY price DESC
LIMIT 1
编辑:
正如Matt所说,如果不止一种产品价格最贵,而且你想要它们。您应该包含一个子查询来获取多个。
SELECT name
FROM products
WHERE type = 'Clothing'
AND price = (SELECT MAX(price)
FROM products
WHERE type = 'Clothing')
答案 3 :(得分:0)
试试这个
select *
from product where
price=(select max(price)
from product where type='Clothing')
这将选择服装类型中价格最高的整行
答案 4 :(得分:0)
通过此查询,您可以看到所有关系,而不仅仅是服装
SELECT maxPricesPerType.type,maxPricesPerType.maxPrice,priceTypes.name
FROM
(
SELECT type, MAX(price) maxPrice FROM products GROUP BY type
) maxPricesPerType
INNER JOIN
(
SELECT type, price,name FROM products GROUP BY type,price
) priceTypes
ON priceTypes.type = maxPricesPerType.type
AND priceTypes.price = maxPricesPerType.maxPrice
这会将您的第一个数组与具有唯一价格类型组合的数组相连接,并显示您所询问的每种类型的最高价格名称。