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子句中。

  • 相关阅读:
    Jenkins构建项目
    jenkins的理解及安装
    GitLab初识以及代码迁移
    深入浅出Git(偏向理论)
    理解下所谓的ssh隧道
    洛谷-P1908 逆序对
    洛谷-P1010 幂次方
    洛谷-P1226 【模板】快速幂||取余运算
    洛谷-P1074 靶形数独
    洛谷-P1433 吃奶酪
  • 原文地址:https://www.cnblogs.com/SharpL/p/4638466.html
Copyright © 2011-2022 走看看