如何按ID排序但不显示ID,且按ID顺序获取TIME_HORIZON去重值?
嘿,我来帮你搞定这个表格处理的需求!
处理TIME_HORIZON字段去重并按ID顺序排列的结果
首先给你手动处理后的最终结果(严格遵循ID顺序去重,不显示ID):
- 1W
- 1M
- 6M
- 2Y
- MAX
如果是用SQL来实现这个需求(假设你的表名为time_records),可以用窗口函数精准控制顺序和去重,代码如下:
SELECT TIME_HORIZON FROM ( SELECT TIME_HORIZON, ROW_NUMBER() OVER (PARTITION BY TIME_HORIZON ORDER BY ID) AS row_num FROM time_records ) ranked_data WHERE row_num = 1 ORDER BY ID;
代码说明:
- 内层子查询用
PARTITION BY TIME_HORIZON把相同时间范围的记录分组,再通过ORDER BY ID保证每组内按ID排序,ROW_NUMBER()给每组的记录编上序号。 - 外层查询只取每组序号为1的记录(也就是每个时间范围首次出现的那条,对应最小的ID),最后再按ID排序输出,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者Gadziu
相关产品推荐
相关产品推荐

