zoukankan      html  css  js  c++  java
  • sql中Distinct&Count的用法

    Distinct作用:消除重复的数值

    1、如:

    1 select id from T1
    2 
    3 select distinct id from T1

    二者的检索效果如下:

    distinct可以用来修饰多列,如:

    1 select distinct id,name from T1

    效果:

    发现检索的结果自动按照id列进行排序,再比如:

    1 select distinct name,id from T1

    发现的结果自动按照name列进行排序。也就是说在执行select语句时,总会对要被检索的列,进行默认的排序,如上例,先按照name进行排序,再按照id进行排序。

    可以以不同的方式,对各列进行排序,如:

    select distinct name ,id from T1 order by name desc,id asc

    效果如下:

    2、限制

    distinct中的select语句只能是distinct所指定的字段,不能出现其他字段,如:


    Count作用:返回匹配指定条件的行数。

    如:

    select count(*) from T1 where id=1
    
    select count(id) from T1
    
    select count(distinct id) from T1

    返回id为1的记录条数。

    返回T1表格中所有的id行数,id为null的记录不统计在内。

    返回T1表格中所有不同的id行数,id为null的记录不统计在内。


    3、Distinct&Count

    1 select count(distinct id) from T1

    将返回不同id的行数。

    但是注意count的使用,如下sql语句将报错:

    1 select count(distinct name),id from T1

    显示错误:选择列表中的列 'T1.ID' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

    应该这样写:

    1 select count(distinct name),id from T1 group by id

    select语句中如果有聚合函数,其他被检索的列也应该被包含在聚合函数或者group by子句中。

  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/SharpL/p/4638466.html
Copyright © 2011-2022 走看看