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

SQLite按两列分组生成组编号或哈希值替代拼接字符串实现方法

方案1:生成groupN格式的组序号

用SQLite的窗口函数DENSE_RANK即可实现,相同的city+age组合会分配同一个连续序号,完全匹配你给出的期望输出:

SELECT 'group' || DENSE_RANK() OVER (ORDER BY city, age) AS h, name, id 
FROM mytable;

执行后New-York+25的两条记录会分到group1,Chicago+23的记录分到group2,和你要求的输出格式完全一致。

方案2:生成固定长度的哈希标识

如果需要用哈希值作为分组标识,SQLite 3.31.0及以上版本内置支持md5哈希函数,对拼接后的组合取哈希即可,得到固定32位长度的十六进制字符串,不会出现拼接结果过长的问题:

SELECT hex(md5(city || age)) AS h, name, id 
FROM mytable;

如果你的SQLite版本不支持内置md5,也可以用sha1()函数替换,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:02