加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 数据库 > MySql > 正文

mysql – DISTINCT BY MAX()?

发布时间:2020-09-21 16:32:41 所属栏目:MySql 来源:互联网
导读:如何获取具有最大EffectivityDate的不同TypeID的行?原始表----------------------------------------- | ID | TypeID | Value | EffectivityDate | ----------------------------------------- | 1 | 1 |

如何获取具有最大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

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读