distinct 和 group by 使用对比

 

t3 表的结构如下:
 
Select * FROM t3
id edu        age
1              20       
2              25       
3              30       
4              30       
5              25       
6              15       
7              20       
8              20       
9              20       
10             20       
11             20       
12             30       
13             30       
--------------------------------------
Select distinct edu,age
FROM t3
order by age
 
edu        age
           15       
           20       
           20       
           20        
           25       
           30       
           30      
 
小结:1、 distinct edu,age 是将 edu,age 两个字段看成一体,只要 edu,age 这两个字段相同,
         就将其视为重复记录 ;
      2 、在 Select 中只能用一次 distinct all;
      3 、在 Select 中用了 distinct 就不能用 ALL ;用了 ALL 就不能用 distinct ; 不能同时存在;
      4 、如果指定了 SELECT DISTINCT ,那么 ORDER BY 子句中的项就必须出现在选择列表中 ;
---------------------------------------
select edu,age,count(*) as ' 人数 '
--into
from t3
--where id<10
--where 分组前记录的过滤条件
group by edu,age
--having 分组后对组的过滤条件
order by age
 
edu        age         人数
           15           1
           20           1
           20           2
           20           3
           25           2
           30           2
           30           2
 
小结:1、 distinct edu,age 是将 edu,age 两个字段看成一体,只要 edu,age 这两个字段相同,
         就将其视为同组 ;
      2 SELECT 子句中的列名必须为分组列或列函数;
      3 where 子句中的列名可以为表中任意字段;
      4 having 子句中的列名必须为分组列或列函数;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值