带有 group by 和 having 子句的 Mysql 查询

标签 mysql sql group-by having

我正在构建查询以获取同一产品的最高价格。 我有表

-----------------------------------------
|   prod_id  |   price   |    user_id   |
-----------------------------------------
|     4      |   25      |       1      |
|     4      |   38      |       2      |
|     4      |   41      |       3      |
|     7      |   100     |       1      |
|     7      |   95      |       2      |
-----------------------------------------

我正在尝试获得以下输出:

-----------------------------------------
|     4      |   41      |       3      |
-----------------------------------------
|     7      |   100     |       1      |
-----------------------------------------

我构造了以下不正确的查询。

select * from user_bid group by prod_id having max(price);

谁能指导我获得所需结果的查询。

最佳答案

SELECT *
FROM user_bid 
WHERE (prodid, price) IN
(
    SELECT prodid, MAX(price)
    FROM user_bid 
    GROUP BY prod_id
)

关于带有 group by 和 having 子句的 Mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39911692/

相关文章:

mysql - SQL:按多个限制分组

php - mysql_connect 不适用于 php?

两个表上的 SQL 查询 - 返回一个表中没有条目的行

php - 使用 MYSQL 选择日期之间的行?

html - 从数据库中填充的格式化表

mysql - 使用多个选择器从 SQL 中的一组中选择一行

mysql - 如果任何行中的字段 X 的值为 Y,则在没有子查询的情况下忽略 mysql 中 GROUP BY 的其他组结果

php - 为什么我的login.php 不会重定向我?

php - 如何通过 AJAX 发送大量数据并使用 PHP 插入 MySQL DB

mysql - 数据库更新后如何清除缓存?