最小值MySQL查询

时间:2012-12-15 14:36:57

标签: 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”只是行中的额外数据。

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

2 个答案:

答案 0 :(得分:5)

您可以使用子查询来标识每个min(a)的{​​{1}}值,然后将其加入到您的表中:

id

请参阅SQL Fiddle with Demo

结果是:

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

答案 1 :(得分:0)

您的查询看起来像这样

  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