SQLiteSpy软件学习sql语句Group by的各种用法。

SQLiteSpy 下载软件的下载安装步骤不再冗述,百度搜索一下很多下载链接。

1、新建一个数据库:

File->New Database,起名为SqlLearning。如下图:

2、sql语句输入区输入如下语句,按快捷键F9,创建数据库表customers。执行后效果如下图。

create table customers(
customerId INTEGER PRIMARY KEY,
name varchar(50),
city varchar(50),
customerType varchar(50),
addTime date,
addFromDepartment  varchar(10),
quantity INTEGER );


3、sql语句输入区域分别输入如下的10个sql语句,插入10条记录。执行后的效果如下图。

insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('张志国','中国','普通客户','2011-10-22','财务部',3) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('靳红浩','法国','主要客户','2012-11-1','销售部',2) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('高武明','中国','普通客户','2013-5-12','编辑部',12) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('王玲菲','德国','特殊客户','2007-1-12','编辑部',5) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('马达达','中国','主要客户','2008-2-19','财务部',3) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('马凯文','德国','特殊客户','2000-4-23','财务部',6) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('姚明明','美国','特殊客户','2011-5-23','编辑部',2) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('余铭宏','中国','主要客户','2012-12-2','销售部',7) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('张艺谋','法国','特殊客户','2013-1-2','编辑部',2) ;
insert into customers(name,city,customerType,addTime,addFromDepartment,quantity) values('张斯五','中国','普通客户','2010-1-3','销售部',1);

4、customers根据customersType进行分组

select customerType  from customers  group by customerType;

5、group by 常和 summaxmincount等聚合函数一起使用,例如:对 customers根据 customersType进行分组统计每个类别中的客户个数

select customerType,COUNT(*) from customers  group by customerType ;


6、 例如:对 customers根据 customersType进行分组获取每组的最大customersId

select customerType,MAX(customerId) as number  from customers  group by customerType ;

注:as number相当于起了个别名,如果不起别名的话将会显示为”MAX(customerId)“


7、group by 字句和where字句一起使用,在SQLwhere字句的运行顺序是先于 group by 字句的,where字句会会在形成组和计算列函数之前消除不符合条件的行

例如:查询由财务部门添加的用户中各个类型的最大customersId

select customerType,MAX(customerId) as number  from customers  where addFromDepartment='财务部' group by customerType ;

where字句过滤掉了不是财务部添加的用户信息,group bywhere字句的结果又进行了分组操作,没有groupby的话得到的记录将是财务部添加的用户中customerId最大的一条记录。

8、group by字句和having()字句一起使用SQL having()字句的运行顺序是后于 group by字句的, having()字句的的作用是筛选满足条件的组,例如:查询客户数超过1个的国家和客户数量

select city ,count(*) number from customers   GROUP by  city  having count(*)>1 ;


 分析:系统会先对customers根据 city 分组,生产虚拟表,之后having字句对生成的虚拟表进行筛选,将数量不大于1的剔除


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值