【问题标题】:Minimum Value MySQL Query最小值 MySQL 查询
【发布时间】:2012-12-03 07:21:29
【问题描述】:

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

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' 只是行中的额外数据。

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

【问题讨论】:

    标签: mysql sql min


    【解决方案1】:

    您可以使用子查询来识别每个 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 |
    

    【讨论】:

    • 对不起,我的回答不够-我删除了-。这是完整的答案。
    【解决方案2】:

    您的查询如下所示

      SELECT *
      FROM table t1
      INNER JOIN
             (
      SELECT min(A) mi, A, ID
      FROM table
      GROUP BY ID
             ) t2
       ON t1.ID = t2.ID
       AND t1.A = t2.A
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2013-04-27
      • 2019-10-26
      • 2016-03-27
      • 2016-01-12
      • 2018-10-22
      • 1970-01-01
      相关资源
      最近更新 更多