使用Grafana时间序列结合SQL Server展示每日用户增长的问题
解决Grafana时间序列展示每日新增用户数量的SQL问题
你的SQL返回每日数值均为1的原因是分组逻辑错误:你使用了原始的[created_at]字段进行分组,而created_at是精确到时分秒的时间戳,每条用户记录的时间几乎都是唯一的,导致每组仅包含一条数据,COUNT(id)自然返回1。
修正后的SQL需要将分组依据改为$__timeGroup聚合后的时间值,这样才能把同一天的用户记录归为一组,统计当日新增总数:
SELECT $__timeGroup([created_at],'1d') as time, COUNT(id) as value, 'users' as metric FROM [db].[user] WHERE $__timeFilter([created_at]) GROUP BY $__timeGroup([created_at],'1d') ORDER BY time
补充说明
$__timeGroup([created_at],'1d')会将created_at按天聚合,生成当天的起始时间戳(如2024-05-20 00:00:00)作为分组键- 若你的SQL Server版本支持直接使用SELECT子句中的别名进行分组,也可以简化为
GROUP BY time,效果一致
内容的提问来源于stack exchange,提问作者kiwi
相关产品推荐
相关产品推荐

