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

如何用单条MySQL语句统计各test-id对应的q-id数量?

如何统计每个test-id对应的唯一q-id数量?

嗨,这个需求用MySQL的分组查询就能轻松实现,单条SQL语句就搞定啦!

你可以用GROUP BY子句配合COUNT(DISTINCT)来完成统计,具体语句如下:

SELECT `test-id`, COUNT(DISTINCT `q-id`) AS unique_q_count
FROM `test`
GROUP BY `test-id`;

给你拆解一下语句的作用:

  • GROUP BY \test-id`:把表中的数据按照test-id进行分组,每个分组对应一个唯一的test-id`值(也就是你说的1到160的每个值)
  • COUNT(DISTINCT \q-id`):统计每个分组里**不重复**的q-id数量,用AS unique_q_count`给结果列起一个直观好读的别名
  • 执行这条语句后,会返回两列数据:一列是各个test-id值,另一列就是对应test-id下的唯一q-id总数

如果你的业务场景里,每个test-id对应的q-id本身就不会出现重复(比如你例子里每个test-id最多100个q-id且都是唯一的),也可以把语句简化成COUNT(\q-id`),不过保留DISTINCT`会更稳妥,能避免意外出现的重复数据影响统计结果。

举个例子,针对你给出的test-id=1的示例数据,这条语句会返回:

test-id | unique_q_count
1       | 100

其他test-id的统计结果也会按同样的格式返回哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:43:05