首页 > 电脑专区 > windows >

sql语句group by的高级语法

来源:互联网 2023-02-22 11:28:03 92

Sql语句中有很多技巧,一般除了我们初学时的增删改查,还有其他很多.DCu办公区 - 实用经验教程分享!

那么我们今天就来教大家如何使用,查询语句中的Group by的高级语法.DCu办公区 - 实用经验教程分享!

初级用法的话,大家可以看一下我其他经验中的一篇.DCu办公区 - 实用经验教程分享!

sql server 2008 Group by的使用方法DCu办公区 - 实用经验教程分享!

工具/原料

Sql Server R2MysqlAccessoracleSqlite

方法/步骤

1

我的电脑是Windows7 64位,所以我安装的是Sql server2008 r2(64位).DCu办公区 - 实用经验教程分享!

大伙安装的时候也一定要记得看一下自己的操作系统是多少位.你是32位操作系统的就安装32位的Sqlserver 版本不限制. 2005 2012都可以.DCu办公区 - 实用经验教程分享!

当然,我们的Sql语句在很多数据库中都是通用的,比如像Mysql数据库 Access数据库. Oracle数据库. Sqlite数据库 .甚至在我们的Excel中也可以使用Sql语句.DCu办公区 - 实用经验教程分享!

2

废话不多说,在我的Sqlserver中新建一个表和一些数据,方便我们学习后面的Group by语句. 如果你是其他数据库也是这个道理. 我用的是微软Sqlserver数据库.DCu办公区 - 实用经验教程分享!

3

写上一个创建表的 sql语句. 当然,我们也可以用设计图创建.DCu办公区 - 实用经验教程分享!

当然我下面的写法只支持sql server2008数据库以上的写法.DCu办公区 - 实用经验教程分享!

create table studentDCu办公区 - 实用经验教程分享!

(DCu办公区 - 实用经验教程分享!

stuid int identity(1,1) not null,DCu办公区 - 实用经验教程分享!

stuname nvarchar(10) not null,DCu办公区 - 实用经验教程分享!

stusex char(2) not null,DCu办公区 - 实用经验教程分享!

stuage int null);DCu办公区 - 实用经验教程分享!

DCu办公区 - 实用经验教程分享!

DCu办公区 - 实用经验教程分享!

insert into student (stuname,stusex,stuage)DCu办公区 - 实用经验教程分享!

valuesDCu办公区 - 实用经验教程分享!

('李小明','男',25),DCu办公区 - 实用经验教程分享!

('王小红','女',19),DCu办公区 - 实用经验教程分享!

('赵大虎','男',20),DCu办公区 - 实用经验教程分享!

('李小明','男',22),DCu办公区 - 实用经验教程分享!

('钱小多','男',23),DCu办公区 - 实用经验教程分享!

('刘小梅','女',25);DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

4

select * from student;DCu办公区 - 实用经验教程分享!

我们输入一条查询语句,显示出我们刚刚插入的所有数据.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

5

那么我们再来查一下姓名各出现过多少次.DCu办公区 - 实用经验教程分享!

select stuname,COUNT(*) from student group by stuname;DCu办公区 - 实用经验教程分享!

从上面的结果我们不难看出,我们根据学生姓名进行了分组.DCu办公区 - 实用经验教程分享!

另一种说法其实就是把重复的过滤了.DCu办公区 - 实用经验教程分享!

把学生表中的姓名那一列用group by分组,并且利用聚合函数(count)统计每个姓名出现的次数.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

6

我们再来创建一个表,为了方便大家学习理解,我就用中文了.DCu办公区 - 实用经验教程分享!

强大的Sqlserver2008是可以支持中文的.DCu办公区 - 实用经验教程分享!

DCu办公区 - 实用经验教程分享!

create table 订单表(订单id int identity(1,1) not null,产品id int not null,用户id int not null,单价 money not null,数量 int not null,折扣 numeric(4,3) not null);DCu办公区 - 实用经验教程分享!

insert into 订单表(产品id,用户id,单价,数量,折扣)values(1,1,19.5,11,0.75),(2,2,20,4,0.85),(2,1,20,9,0.85),(3,2,10,1,1),(1,3,19.5,3,0.75),(1,4,19.5,2,0.75),(1,5,19.5,14,0.75);DCu办公区 - 实用经验教程分享!

DCu办公区 - 实用经验教程分享!

DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

7

我们显示一下表中的数据.DCu办公区 - 实用经验教程分享!

select * from 订单表;DCu办公区 - 实用经验教程分享!

在我们实际开发中,可能我们设计了一个商品订单管理系统.DCu办公区 - 实用经验教程分享!

但是客户要我们显示什么数据,他可能对你说:"我要你给我打印什么东西."DCu办公区 - 实用经验教程分享!

这是一个非常复杂的过程,但是他认为这就是一句话的事情.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

8

我们现在来考虑一个实际的问题,我现在要查询各个商品售出多少件!!DCu办公区 - 实用经验教程分享!

select 产品id,SUM(数量) from 订单表 group by 产品id;DCu办公区 - 实用经验教程分享!

这条sql语句也挺有难度的. 我们通过这样子就能算出某个产品的销售总数量.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

9

select 产品id,SUM(数量) as 销售总量 from 订单表 group by 产品id;DCu办公区 - 实用经验教程分享!

当然,我们还可以通过as关键字来修改查询新字段的名称.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

10

我们来个更有挑战性的,查询所有产品的总销售价格大于100元的产品.DCu办公区 - 实用经验教程分享!

首先我们要知道一个产品的价格等于DCu办公区 - 实用经验教程分享!

商品数量*单价*折扣.DCu办公区 - 实用经验教程分享!

select 产品id,SUM(单价*数量*折扣) AS 商品总销售金额 from 订单表 group by 产品idhaving SUM(单价*数量*折扣)>100;这样就得出了我们想要的结果.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

11

select 用户id,SUM (单价*数量*折扣) as 消费金额 from 订单表 group by 用户id;那么我们就要写最后一个案例了,统计用户一共花了多少钱.DCu办公区 - 实用经验教程分享!

sql语句group by的高级语法DCu办公区 - 实用经验教程分享!

12

order by的用法我们就说到这里.DCu办公区 - 实用经验教程分享!

接下来我们会分享更多的SQL语句的高级语法.DCu办公区 - 实用经验教程分享!

以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!DCu办公区 - 实用经验教程分享!


标签: SQL高级语法语句

办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码