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

SQLite3+Python3如何实现按id分组聚合所有value值的查询

SQLite 按ID分组拼接字符串解决方案

正确查询语句

SQLite 内置了group_concat()聚合函数专门用来实现分组拼接字符串的需求,你可以直接使用以下语句:

SELECT id, group_concat(value, ', ') AS concat_values
FROM 替换为你的实际表名
GROUP BY id;

说明

  1. 你之前的写法SELECT * FROM table GROUP BY id只返回单条value,是因为SQLite的非标准GROUP BY逻辑:未被聚合函数包裹、也没有出现在GROUP BY子句中的字段,只会取分组后的第一条记录,自然无法拿到所有value。
  2. group_concat()第一个参数为需要拼接的字段,第二个可选参数为自定义分隔符,你需要逗号加空格的效果直接指定为, 即可,不传该参数时默认使用不带空格的逗号拼接。
  3. 如果需要调整拼接的value顺序,可以在函数内部加ORDER BY规则,例如按value字典序拼接可以写为group_concat(value, ', ' ORDER BY value)。

Python3 调用示例

你可以直接用sqlite3模块执行上述语句:

import sqlite3

# 连接数据库
conn = sqlite3.connect("你的数据库文件路径.db")
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT id, group_concat(value, ', ') FROM 你的表名 GROUP BY id")
result = cursor.fetchall()

# 打印结果验证
for item in result:
    print(item)
# 输出:
# (123, 'val1, val3, val2')
# (124, 'val2, val1')

# 关闭连接
conn.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:24:03