sql语句 如何分组后得到记录总数

2024-12-03 23:37:14
推荐回答(5个)
回答1:

SELECT COUNT(*) 

FROM (SELECT 分组字段 FROM 表 

GROUP BY 分组字段 

)别名 


或者 

SELECT COUNT(*) 

FROM (SELECT distinct 分组字段 FROM 表)别名

扩展资料:

SQL分组查询

在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用聚合函数就必须出现在ORDER BY子句中(即SELECT后边的字段名要么出现在聚合函数中,要么在ORDER BY子句中使用)

在分组查询中还可以配合使用HAVING子句,定义查询条件。

使用group by进行分组查询

在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:

1、被分组的列

2、为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数

3、group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

回答2:

要得到每组的合计可以用2、3楼,要总计用1楼,想一次性得到分组合计以及总计,sql2005可以这么写:
SELECT 分组字段 FROM 表
GROUP BY 分组字段
compute sum(COUNT(*))

=====
那就这样
SELECT COUNT(*)
FROM (SELECT 分组字段 FROM 表
GROUP BY 分组字段
)别名
或者
SELECT COUNT(*)
FROM (SELECT distinct 分组字段 FROM 表)别名

回答3:

统计记录条数就用count()函数啊,如果想统计分组以后每个组的记录数,就分别统计或者在where条件中加上分组条件

回答4:

使用函数COUNT(*)就可以啊。要是统计总和就用SUM。

SELECT 分组字段 COUNT(*)
FROM 表
GROUP BY 分组字段

回答5:

select count(*),列名 from 表名 group by 列名