资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

很容易,我等你们,分组查询是怎么个意思?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

我对照着三本书,在网上又查,整不明白分组group   by是什么意思?  
   
  不group   by不也是分组的吗???  
   
  谁能讲明白这分就是谁的了,我找的脑袋疼了,不行了,等嗟来之食了  
   
  另外,我讨厌野书!!  
   
  请大家推荐一本SQL语法的好书吧要电子版的,所谓好书就是象我这种傻人一看就能明白的书,我不要天书不要野书

网友回答:

发表者:chinaandys

GROUP   BY   关键字后面跟着列的列表,称为分组列。GROUP   BY   子句限制结果集中的行;对于分组列中的每个非重复值只有一行。每个结果集行都包含与其分组列中特定值相关的汇总数据。  
   
  多看SQL   SERVER联机帮助

发表者:yjdn

--测试  
  create   table   tb1(客户名称   varchar(10),数量   int)  
  insert   into   tb1   select   001,90  
  union   all   select   002,50  
  union   all   select   002,40  
  union   all   select   00190  
  union   all   select   002,50  
  union   all   select   001,100  
   
   
  --计算每个组的数量和  
  select   客户名称,数量=sum(数量)   from   tb1   group   by   客户名称  
   
  --结果:  
  001 280  
  002 140  
   
   
  --求出每个组中有重复的记录  
  select     *   from   tb1   group   by   客户名称,数量   having   count(*)>1  
   
  --结果:  
  002 50  
  001 90  
   
   
  ----------------  
  group   by   字段名                         --是以这个字段相同的值来分组  
  比如:  
  id     num  
  1     2  
  1     3  
  2     3                               --如果你以id分组,就只有两个组,1和2  
                                      --如果以num分组,那就是2和3

发表者:mgsray

id,   money  
  1,   1  
  2,   2  
  1,   3  
  select   id   ,   sum(money)   from   table   group   by   id  
  --result  
  id   ,money  
  1,   4  
  2,   2  
  简单的说group   by根据指定列将结果分组后合并,合并内容由聚合函数决定,上例中是sum函数  
 

发表者:mschen

物以类聚,人以群分.分组group   by   就是把相同的字段值放在一组里边进行统计.

发表者:funsuzhou

如果用到group   by的话  
  select   后面的东西要么出现在group   by后面,要么是聚合函数。  
  常用聚合函数:  
  SUM([ALL   |   DISTINCT]   expression)   数字表达式中所有值的和    
  AVG([ALL   |   DISTINCT]   expression)   数字表达式中所有值的平均值    
  COUNT([ALL   |   DISTINCT]   expression)   表达式中值的个数    
  COUNT(*)   选定的行数    
  MAX(expression)   表达式中的最高值    
  MIN(expression)   表达式中的最低值    
   
 

发表者:taiguang

--求出每个组中有重复的记录  
  select     *   from   tb1   group   by   客户名称,数量   having   count(*)>1  
   
  --结果:  
  002 50  
  001 90  
   
  这就是多分组

发表者:yjdn

group   by   a   ,b  
   
  a       b     c  
  1       2     5  
  1       3     7  
  1       2     10  
   
   
  select   a,b,max(c)   from   表   group   by   a,b  
  得到:  
  1       2       10  
  1       3       7  
   
   
  --就是先以a分组,再以b分组。  
   
 


 

 
热门推荐笔记本: 新蓝笔记本
相关文章:
笔记本相关:
IT技术文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved