mysql – DISTINCT BY MAX()?

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

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

原始表

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

查询结果

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

有帮助吗?

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

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT TypeID,MAX(EffectivityDate) maxDate
            FROM tableName
            GROUP BY TypeID
        ) b ON  a.TypeID = b.TypeID AND
                a.EffectivityDate = b.maxDate

SQLFiddle Demo

猜你在找的MySQL相关文章