You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于code和date字段创建显示自定义排序的字段?

按分组生成日期倒序排序序号的实现方案

需求示例

以下是目标效果的示例表格:

codedateorder column
110/04/223
111/04/222
114/05/221
210/04/222
215/04/221
311/04/221
412/04/222
416/04/221
515/04/222
517/04/221

不同数据库的实现代码

MySQL/MariaDB

使用窗口函数ROW_NUMBER(),按code分组、日期倒序生成序号:

SELECT 
    code,
    date,
    ROW_NUMBER() OVER (PARTITION BY code ORDER BY STR_TO_DATE(date, '%d/%m/%y') DESC) AS `order column`
FROM your_table;

如果你的date字段本身就是日期类型,不需要转换,直接写ORDER BY date DESC即可。

PostgreSQL

同样用窗口函数,日期转换用TO_DATE:

SELECT 
    code,
    date,
    ROW_NUMBER() OVER (PARTITION BY code ORDER BY TO_DATE(date, 'DD/MM/YY') DESC) AS "order column"
FROM your_table;

date为日期类型时,简化为ORDER BY date DESC。

SQL Server

用CONVERT处理日期格式,配合窗口函数实现:

SELECT 
    code,
    date,
    ROW_NUMBER() OVER (PARTITION BY code ORDER BY CONVERT(DATE, date, 3) DESC) AS [order column]
FROM your_table;

参数3对应DD/MM/YY格式,date是日期类型时直接用ORDER BY date DESC。

补充说明

  • PARTITION BY code:指定按code字段分组,每个组内独立计算序号
  • ORDER BY date DESC:组内按日期从新到旧排序,最新日期对应序号1
  • 如果需要相同日期的记录共用同一个序号,可以把ROW_NUMBER()换成RANK()或DENSE_RANK(),两者的区别是RANK()会跳过重复序号,DENSE_RANK()不会。

内容的提问来源于stack exchange,提问作者Country girl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:40:24