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

如何用SQL按Metric列的整数值分组统计行数?

解决SQL分组统计Metric值行数的问题

嘿,作为SQL新手遇到这种问题太正常啦,我来帮你捋清楚~

首先看你的需求:统计Metric列中每个整数值对应的总行数。你的原SQL语句是:

SELECT COUNT(Metric) FROM tablename GROUP BY Metric

这个语句报错的核心原因是:你没有把分组依据的Metric列包含在SELECT查询列表里。大多数SQL数据库(比如MySQL、PostgreSQL、SQL Server等)都有规则:当使用GROUP BY分组时,SELECT里的列要么是GROUP BY中的列,要么是被聚合函数(比如COUNT、SUM)处理过的列。你的语句只返回了统计数,却没对应显示是哪个Metric值的统计结果,数据库无法识别这种逻辑,所以抛出错误。

正确的SQL语句

想要得到你期望的结果,我们需要把Metric列加入SELECT列表,同时给统计列起一个别名(和你想要的Count列名对应),优化后的语句如下:

SELECT Metric, COUNT(*) AS Count
FROM tablename
GROUP BY Metric;

对这个语句的关键点解释:

  • Metric:加入到SELECT后,就能在结果中看到每个分组对应的具体数值
  • COUNT(*):统计每组的总行数,相比COUNT(Metric)更通用——如果Metric列存在NULL值,COUNT(Metric)会忽略这些行,而COUNT(*)会包含所有行,你的数据里都是有效整数,两者都能用,但COUNT(*)更稳妥
  • AS Count:给统计结果列起别名,让输出的列名和你期望的一致

匹配你期望的排序结果

如果想要结果里Metric按降序排列(先显示6,再显示3),只需要加上ORDER BY子句:

SELECT Metric, COUNT(*) AS Count
FROM tablename
GROUP BY Metric
ORDER BY Metric DESC;

执行这个语句后,就能得到和你完全一致的输出:

Metric | Count
6      | 2
3      | 2

内容的提问来源于stack exchange,提问作者J. Ayo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:51:51