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

InfluxDB统计distinct字段计数:正确SQL语句编写咨询

解决SQL统计重复name出现次数的问题

我来帮你搞定这个统计需求!你的目标是统计表names中每个不同name值的出现次数,对吧?先看看你之前的SQL问题出在哪,再给你正确的写法。

你的问题分析

你之前写的两条SQL都存在明显问题:

  • 首先,where name=! /.*name*/这个条件语法完全错误,而且你的所有数据都是*.name格式,这个条件不仅没必要,还会导致查询出错或者过滤掉正确的数据。
  • 第一条SQLselect distinct(name) from names ... group by name:GROUP BY name本身就会返回唯一的name值,DISTINCT是多余的,而且这条语句没有统计次数的逻辑,所以自然只得到name列表,没有对应的count值。
  • 第二条SQLselect count(distinct(name)) from names ... group by name:COUNT(DISTINCT name)是统计每个分组中不同name的数量,但每个分组里的name都是完全相同的,所以这条语句会返回每个分组的count为1,和你想要的“每个name的出现次数”完全不符。

正确的SQL语句

要得到你期望的结果,只需要用GROUP BY分组后,用COUNT(*)统计每组的行数即可:

SELECT name, COUNT(*) AS count
FROM names
GROUP BY name;

结果验证

代入你的数据(3个1.name、2个2.name、1个3.name),这条SQL会返回:

namecount
1.name3
2.name2
3.name1

完全符合你的预期!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:18:11