MySQL 在每个邮政编码中找到最贵的

标签 mysql aggregate-functions

我有一个名为 Products 的表,其中包含架构(名称、城市、州、邮政编码价格)。

我想找到给定州的每个邮政编码最昂贵的产品名称。

我写了

SELECT zip_code, MAX(price)
FROM products
WHERE products.state = 'NJ'
GROUP BY zip_code

作为子查询,但我无法弄清楚在“NJ”中显示每个邮政编码的产品名称和价格

如果你能帮助我,我将不胜感激, 谢谢。

最佳答案

这应该可行,但我不能保证它的效率。根据评论,这里有一个更新,可以拉回所有价格等于每个邮政编码最高价格的记录。

SELECT *
  FROM products p1
 WHERE p1.state = 'NJ'
   AND p1.price = (select max(price) from products p2
                   where p1.zip_code = p2.zip_code)

http://www.sqlfiddle.com/#!2/98f6d/2

关于MySQL 在每个邮政编码中找到最贵的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982039/

相关文章:

php - PDO::FETCH_ASSOC with SUM() 不工作?

带有 WHERE IN 子句的 SQL MAX 日期

scala - 使用elastic4s客户端为Elasticsearch构建动态聚合查询

apache-spark - PySpark 数据帧上的自定义聚合

php - MySQL 24 小时平均 10 分钟

mysql - 用mysql中同一表的其他列行的值更新行

php - 无法使用php登录数据库

php - mysql中group by子句的问题

mysql - 如何将多个数据库转储导入到xampp

计算每个时间间隔增长的 SQL 语句