mysql - 如何编写这个 MySQL 查询?

标签 mysql sql logic minimum

假设我有一个表,其中包含三个整数字段和一个字符串字段(仅数据)。

例如,它看起来像:

Id      Category    Value   Data
1       1           3       ...
2       1           4       ...
3       2           2       ...
4       2           4       ...
5       3           5       ...
6       3           6       ...
7       3           2       ...
8       4           1       ...

我想要做的是对于每个Category,在结果集中包含具有最小Value字段的行。在这种情况下,它将返回:

Id      Category    Value   Data
1       1           3       ...
3       2           2       ...
7       3           2       ...
8       4           1       ...

如何编写这样的查询?

谢谢!

最佳答案

select T1.Id,
       T1.Category,
       T1.Value,
       T1.Data
from YourTable as T1
  inner join (
               select Category,
                      min(Value) as Value
               from YourTable
               group by Category
             ) as T2
    on T1.Category = T2.Category and
       T1.Value = T2.Value

关于mysql - 如何编写这个 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330038/

相关文章:

MySQL 多个结果集的乘积

c++ - 简单的 if 语句在应该评估时未评估为真

c++ - 请给我一个 boost-multi-index stub - 带有 std::cout

java - java向mysql插入数据的问题

c++ - MySQL 内存泄漏 : libmysqlclient. 18

php - 使我的代码异步,这样就不会永远加载

c++ - 如何从 linux C++ 应用程序访问 SQL 服务器?

mysql - 根据表主键从两个表中选择

C++ for 循环字符串比较逻辑存在缺陷

javascript - ExpressJs + Passport.js + MySQL 身份验证