mysql – DISTINCT BY MAX()?

前端之家收集整理的这篇文章主要介绍了mysql – DISTINCT BY MAX()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何获取具有最大EffectivityDate的不同TypeID的行?

原始表

  1. -----------------------------------------
  2. | ID | TypeID | Value | EffectivityDate |
  3. -----------------------------------------
  4. | 1 | 1 | 2.3 | 1990-01-01 |
  5. | 2 | 1 | 3.4 | 1999-10-31 |
  6. | 3 | 2 | 1.1 | 1990-01-01 |
  7. | 4 | 2 | 2.2 | 1999-10-31 |
  8. | 5 | 3 | 6.1 | 1999-10-31 |
  9. -----------------------------------------

查询结果

  1. -----------------------------------------
  2. | ID | TypeID | Value | EffectivityDate |
  3. -----------------------------------------
  4. | 2 | 1 | 3.4 | 1999-10-31 |
  5. | 4 | 2 | 2.2 | 1999-10-31 |
  6. | 5 | 3 | 6.1 | 1999-10-31 |
  7. -----------------------------------------

有帮助吗?

最佳答案
您可以在子查询获取最大的EffectiveDate,然后使用自己的表再次加入它,

  1. SELECT a.*
  2. FROM tableName a
  3. INNER JOIN
  4. (
  5. SELECT TypeID,MAX(EffectivityDate) maxDate
  6. FROM tableName
  7. GROUP BY TypeID
  8. ) b ON a.TypeID = b.TypeID AND
  9. a.EffectivityDate = b.maxDate

SQLFiddle Demo

猜你在找的MySQL相关文章