zl程序教程

您现在的位置是:首页 >  后端

当前栏目

SQL Server中的group by(分组)

serverSQL by 分组 group
2023-09-14 09:12:35 时间

参考网址: https://blog.csdn.net/tswc_byy/article/details/81909052

sql 查询不必需和聚合函数一起使用 ,通常来说一般是要和聚合函数一起使用来处理这一组的数据 的数据

但是有时不需要,会更方便,比如说 一个订单表里面需要拿到购买多次商品的用户id

通常会怎么做? 表字段有 customer_id, product_code 现在需要取出购买次数> 2 的customer_id

select customer_id from (select customer_id,count(product_code) tmp from order group by customre_id having tmp >1)

感觉有点麻烦 ,

也可以直接这样

select customer_id from order group by customer_id having count(product_code) >1

 

排序转换类型integer
order by CAST(fields AS UNSIGNED INTEGER) DESC
where后面如果有多个条件限制,如and or 需要对其加括号(),将其包裹其中,或者直接在后面用having处理,having对结果集进行处理
双引号内套单引号 单引号内套双引号

 

一、建库和建表
create database scort
use scort
create table emp
(
empno int primary key,
ename nvarchar(10),
sal int,
deptno int
)
insert into emp values (7369,'smith',1800,20);
insert into emp values (7499,'allen',1500,10);
insert into emp values (7521,'ward',1600,30);
insert into emp values (7566,'jones',2000,30);
insert into emp values (7654,'martin',1800,10);
insert into emp values (7698,'blake',1800,30);


二、group by的用法
1.格式:group by 字段的集合

2.功能:把表中的记录按照字段分成不同的组

3.实例演示:

select deptno,AVG(sal) from emp group by deptno
--查找不同deptno的平均sal


4.group by a,b,c的用法:

先按照a分组,如果a相同,再按照b分组,如果b相同,再按照c分组。最终统计的是最小分组的信息。

5.注意:使用了group by之后select中只能出现分组后整体的信息。例:

select deptno,sal from emp group by deptno --error

载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tswc_byy/article/details/81909052


————————————————
版权声明:本文为CSDN博主「AuroraPetard」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38250124/article/details/84945139