我有一个看起来像这样的表:

身份证日期类别

x   1995      A
x   1996      B
z   1995      B
z   1996      A
y   1995      B
y   1996      B


我要做的是将“类别”设置为每个ID的最短日期的值。这样最终结果将如下所示:

身份证日期类别

x   1995      A
x   1996      A
z   1995      B
z   1996      B
y   1995      B
y   1996      B


有人知道如何在SQL中执行此操作吗?谢谢!

最佳答案

您可以使用子查询:

select
  id,
  date,
  (
    select category
    from mytable x
    where x.id = m.id
    and not exists
    (
      select *
      from mytable older
      where older.id = x.id
      and older.date < x.date
    )
  ) as oldest_category
from mytable m;

关于mysql - SQL:为每个唯一组选择一个最小值并更改值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31026281/

10-09 00:58