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

BigQuery按年份分组统计login_log_id总数的SQL报错解决

问题原因

你写的SQL报错,是因为SELECT里的login_time以及从它派生的login_date、login_year、TIME(login_time)这些列,既没放到GROUP BY里,也没通过聚合函数处理——而你当前GROUP BY的是login_log_id,这完全偏离了“按年份统计总数”的需求。

正确实现代码

要按年份统计login_log_id的总数,你需要按提取出的年份分组,再用COUNT函数统计数量:

SELECT
  EXTRACT(YEAR FROM login_time) AS login_year,
  COUNT(login_log_id) AS total_login_logs
FROM `steel-time-347714.flex.logs`
GROUP BY login_year
ORDER BY login_year; -- 可选:按年份排序,结果更直观
代码说明
  • EXTRACT(YEAR FROM login_time) AS login_year:从登录时间里提取年份,作为分组的依据
  • COUNT(login_log_id) AS total_login_logs:统计每年的login_log_id总数(如果login_log_id不会为空,用COUNT(*)也能得到一样的结果)
  • GROUP BY login_year:核心逻辑,按年份对数据分组
  • ORDER BY login_year:可选步骤,让结果按年份升序排列,方便查看

如果你的数据里存在重复的login_log_id,需要统计每年不重复的数量,就把COUNT改成COUNT(DISTINCT login_log_id):

SELECT
  EXTRACT(YEAR FROM login_time) AS login_year,
  COUNT(DISTINCT login_log_id) AS unique_login_logs
FROM `steel-time-347714.flex.logs`
GROUP BY login_year
ORDER BY login_year;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:18:33