• ROW_NUMBER() OVER (PARTITION BY id ORDER BY createTime DESC)的用法讲解(文心一言自动生成的博客)


    好的,以下是一个使用ROW_NUMBER() OVER (PARTITION BY id ORDER BY createTime DESC)的简单示例:

    假设我们有一个名为"records"的表,包含以下列:

    • id: 记录的唯一标识符
    • createTime: 记录创建的时间戳
    • value: 记录的值

    表结构如下:

    idcreateTimevalue
    12023-07-01100
    12023-07-02200
    12023-07-03150
    22023-07-0150
    22023-07-02150
    32023-07-0180

    现在,我们想要找到每个id的最新的记录,即根据createTime降序排序后的第一条记录。我们可以使用ROW_NUMBER() OVER (PARTITION BY id ORDER BY createTime DESC)来实现这个目标。

    以下是使用此函数的查询示例:

    1. SELECT id, createTime, value
    2. FROM (
    3. SELECT id, createTime, value,
    4. ROW_NUMBER() OVER (PARTITION BY id ORDER BY createTime DESC) AS rn
    5. FROM records
    6. ) AS subquery
    7. WHERE rn = 1;


    查询结果如下:

    idcreateTimevalue
    12023-07-03150
    22023-07-02150
    32023-07-0180

    在这个结果中,我们得到了每个id的最新的记录,即根据createTime降序排序后的第一条记录。每个分区(即每个id)内部的记录按照createTime降序排序,并且分配了一个行号(rn)。外部查询选择了行号为1的记录,也就是每个分区中的第一条记录。这样,我们得到了每个id的最新记录。

  • 相关阅读:
    bellman ford
    postman7种断言的使用
    基于DF中继的协作MIMO通信系统matlab仿真
    C++智能指针
    批量xls转换为xlsx
    Mirror 镜像站点的使用
    Vue中如何进行跨域处理
    前端进阶--深入理解JavaScript
    十六、Lua 文件 I/O的学习
    RIP 路由 3 个定时器的工作流程和 4 种防环方法
  • 原文地址:https://blog.csdn.net/qq3892997/article/details/132976899