mysql - 最小值 MySQL 查询

标签 mysql sql min

我有一个类似于下面的数据表:

ID   A   B
10  5    blue
10  8    red
10  10  yellow
20  2    black
20  17  blue
30  7    red
30  12  green
30  50  black

基本上我想编写一个 mySQL 查询来输出如下内容:

ID   A   B
10  5    blue
20  2    black
30  7    red

它只给出唯一的“ID”值和每个唯一“ID”的“A”的最小值。 “B”只是行中的额外数据。

我的查询应该是什么样的?

最佳答案

您可以使用子查询来识别每个 idmin(a) 值,然后将其连接回您的表:

select *
from yourtable t1
inner join
(
  select min(A) A, id
  from yourtable
  group by id
) t2
  on t1.id = t2.id
  and t1.A = t2.A

参见 SQL Fiddle with Demo

结果是:

| ID | A |     B |
------------------
| 10 | 5 |  blue |
| 20 | 2 | black |
| 30 | 7 |   red |

关于mysql - 最小值 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893114/

相关文章:

python - 特定列中的简单 Numpy 最小值和最大值

sql - 如何重构此 SQL 查询?

mysql - 过滤掉mysql中具有日期范围间隙的行

mysql - 根据其他 2 个值从 mysql 表中删除

mysql - 在相同的meta_key中使用OR运算符选择帖子 AND 运算符用于不同的meta_key

Mysql Group by Year and Count字段

python - 从列表中删除最小的数字

Java - 使用数组查找/打印最小值/最大值?

python - PyMySQL 在 Python 中将变量分配给表名

PHP 如何编辑我刚刚创建的数据库条目? (基本的)