sql中,group by除了和count()配合,还能有其他用法吗?

只能和聚合函数配合吧!!!其他还有吗??
2025-03-10 17:38:22
推荐回答(3个)
回答1:

还可以和很多啊
sum() avg() min() max() 等
这类都叫聚合函数

还可以去重,如果有重复数据的话,可以用group by,打个比方
如果表里有一列字段叫id
id
1
1
2
2

select id from 表名 group by id
这样得到的结果只有1和2
这个用法类似于distinct

如果有两列
id name
1 a
2 a
1 a
2 b
select id,name from 表名 group by id,name
结果是
1 a
2 a
2 b
就是去掉两俩完全相同的

还有一种,也是类似于上边两列数据
select id,name from 表名 group by id,name having count(*)>=2

这样的话,就是找出条数大于等于2的那列,也就是1 a

这个也可以配合其他聚合函数使用,

select id,name from 表名 group by id,name having sum(某字段)>=2

回答2:

group by是根据某字段分组!
如group by id也就是根据ID分组!只要是ID相同的数据都合并成一条记录了!
因此就引出了聚合函数!
也可以这么说group by 是与聚合函数配合!用having 语句筛选指定条件的数据

回答3:

如:你计算某个员工的历史工资总和,则使用
select
ename
as
员工名
sum(salary)
as
工资总和
from
employee_salary
group
by
eid;
其中,salary是每次记录的工资,eid是员工id,ename是员工姓名