SQLite按年月分组统计quantidade求和问题求助
SQLite按年月分组求和问题排查与解决
问题说明
需要对stock_tracking_Negociacao表中mercado = 'Futuro'的数据,按「年/月」(例如:2022/08)分组,统计每组quantidade字段的总和。
当前使用的SQL代码
SELECT data, SUM(quantidade) AS sum FROM stock_tracking_Negociacao WHERE mercado = 'Futuro' GROUP BY strftime('%Y', data), strftime('%m', data)
问题分析
这段SQL存在两个核心问题:
- SELECT子句与GROUP BY不匹配:SELECT中返回的
data是具体日期字段,既不属于聚合函数也未出现在GROUP BY中,执行时会返回分组内任意一条记录的日期,而非我们需要的年月格式。 - 分组结果无明确年月标识:GROUP BY按年和月分开分组,但SELECT未输出对应的年月组合,无法直接得到「年/月」格式的分组标签。
修正后的SQL代码
写法一(使用别名分组)
SELECT strftime('%Y/%m', data) AS year_month, SUM(quantidade) AS sum_quantidade FROM stock_tracking_Negociacao WHERE mercado = 'Futuro' GROUP BY year_month ORDER BY year_month
写法二(直接使用表达式分组)
SELECT strftime('%Y/%m', data) AS year_month, SUM(quantidade) AS sum_quantidade FROM stock_tracking_Negociacao WHERE mercado = 'Futuro' GROUP BY strftime('%Y/%m', data) ORDER BY year_month
代码说明
- 用
strftime('%Y/%m', data)将日期字段格式化为「年/月」字符串,同时作为分组依据和结果展示的分组标签 SUM(quantidade)计算每组的quantidade总和,命名为sum_quantidade让字段含义更清晰- 添加
ORDER BY year_month确保结果按年月顺序排列,提升可读性
内容的提问来源于stack exchange,提问作者Felipe Dourado
相关产品推荐
相关产品推荐

