zoukankan      html  css  js  c++  java
  • SQL – 5.数据分组 + 6.限制结果集行数 + 7.抑制重复数据

    数据分组(count(*))

    • 按照年龄进行分组统计各个年龄段的人数:
      SELECT FAge,Count(*) FROM T_Employee GROUP BY Fage
    • GROUP BY子句必须放到WHERE语句的之后
    • 没有出现在GROUP BY子句中的列是不能放到SELECT语句后的列名列表中的 (聚合函数中除外)
      •错误:SELECT FAge,FSalary FROM T_Employee GROUP BY FAge
      •正确:SELECT FAge,AVG(FSalary) FROM T_Employee GROUP BY FAge


    HAVING语句

    • Where中不能使用聚合函数,必须使用Having,Having要位于Group By之后,
      SELECT FAge,COUNT(*) AS 人数 FROM T_Employee GROUP BY FAge HAVING COUNT(*)>1
    • 注意Having中不能使用未参与分组的列,Having不能替代where。作用不一样,Having是对组进行过滤。


    限制结果集行数(top)

    • select top 5 * from T_Employee order by FSalary Desc
    • (*)检索按照工资从高到低排序检索从第六名开始一共三个人的信息 :
      SELECT top 3 * FROM T_Employee
      WHERE FNumber NOT IN
      (
      SELECT TOP 5 FNumber FROM T_Employee ORDER BY FSalary DESC) 
      ORDER BY FSalary DESC
    • SQLServer2005后增加了Row_Number函数简化实现,后面会讲。


    去掉数据重复(distinct)

    • 执行备注中的SQL语句,AlterInsert单独执行。
        SELECT FDepartment FROM T_Employee
        SELECT DISTINCT FDepartment FROM T_Employee
    • DISTINCT是对整个结果集进行数据重复处理的,而不是针对每一个列,因此下面的语句并不会只保留Fdepartment进行重复值处理:
      SELECT DISTINCT FDepartment,FSubCompany
      FROM T_Employee
  • 相关阅读:
    将WinServers2019打造成家用系统
    WindowsServers2019上手体验
    【代码模板】不存在的NOIP2017
    NOIP2018初赛翻车总结
    【初赛】各种排序算法总结
    【Luogu1996】约瑟夫问题(模拟,解法汇总)
    【初赛】NOIP2018程序模板
    MongoDB
    非关系型数据库----MongoDB
    用Python来操作redis 以及在Django中使用redis
  • 原文地址:https://www.cnblogs.com/tangge/p/2482203.html
Copyright © 2011-2022 走看看