当前位置: 首页 > news >正文

手机网站绑定域名是什么意思长春火车站最新通知

手机网站绑定域名是什么意思,长春火车站最新通知,网站建设步骤列表图片,做企业网站 asp的cms系统哪个好GROUP BY 和 HAVING 子句#xff1a;分组与过滤 在 Oracle 11g 中#xff0c;GROUP BY 子句用于根据一个或多个列对查询结果进行分组#xff0c;而 HAVING 子句用于对分组后的结果进行过滤。这两者常结合聚合函数使用#xff0c;用以实现复杂的数据统计和分析。本文将系统…GROUP BY 和 HAVING 子句分组与过滤 在 Oracle 11g 中GROUP BY 子句用于根据一个或多个列对查询结果进行分组而 HAVING 子句用于对分组后的结果进行过滤。这两者常结合聚合函数使用用以实现复杂的数据统计和分析。本文将系统讲解其语法、应用场景及实践案例。 一、GROUP BY 子句的基本语法 SELECT 列名1, 聚合函数(列名2), ... FROM 表名 [WHERE 条件] GROUP BY 列名1, 列名2, ... [HAVING 条件];说明 GROUP BY指定分组的列或表达式。聚合函数如 SUM、COUNT、AVG、MAX、MIN 等用于对分组数据进行统计计算。HAVING用于过滤分组后的数据与 WHERE 类似但只能用于分组结果。 二、GROUP BY 的应用 1. 按单列分组 根据单个列的值对数据分组并对每组数据应用聚合函数。 示例计算每个部门的总薪资 SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id;结果 每个部门一行总薪资通过 SUM 函数计算得出。 2. 按多列分组 分组可以基于多个列的组合值。 示例统计每个部门中不同职位的员工人数 SELECT department_id, job_id, COUNT(*) AS employee_count FROM employees GROUP BY department_id, job_id;结果 每个部门中每种职位的员工数量。 3. 使用表达式分组 分组依据可以是计算结果或表达式。 示例按薪资级别分组并统计员工人数 SELECT CASE WHEN salary 10000 THEN 高薪WHEN salary 5000 THEN 中等薪资ELSE 低薪END AS salary_level, COUNT(*) AS employee_count FROM employees GROUP BY CASE WHEN salary 10000 THEN 高薪WHEN salary 5000 THEN 中等薪资ELSE 低薪END;结果 返回按薪资级别分组后的员工数量。 三、HAVING 子句的应用 HAVING 子句用于对分组后的结果进行进一步过滤。它与 WHERE 的区别在于 WHERE 用于分组前过滤数据。HAVING 用于分组后过滤分组结果。 1. HAVING 的基本使用 示例筛选总薪资超过 50000 的部门 SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id HAVING SUM(salary) 50000;说明 HAVING 条件中直接使用聚合函数进行筛选。 2. HAVING 与 WHERE 联合使用 示例筛选出仅统计薪资大于 3000 的员工并返回总薪资超过 20000 的部门 SELECT department_id, SUM(salary) AS total_salary FROM employees WHERE salary 3000 GROUP BY department_id HAVING SUM(salary) 20000;说明 WHERE 筛选薪资大于 3000 的员工减少数据量。HAVING 筛选分组后总薪资大于 20000 的部门。 3. HAVING 中的复杂条件 示例筛选平均薪资大于 5000 且员工人数超过 5 的部门 SELECT department_id, AVG(salary) AS avg_salary, COUNT(*) AS employee_count FROM employees GROUP BY department_id HAVING AVG(salary) 5000 AND COUNT(*) 5;说明 使用多个条件组合对分组结果进行过滤。 四、GROUP BY 和 HAVING 的进阶用法 1. GROUP BY ROLLUP ROLLUP 是一种扩展分组的功能用于生成分组的汇总数据。 示例统计每个部门的总薪资并增加所有部门的总薪资行 SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY ROLLUP(department_id);结果 返回每个部门的总薪资。额外增加一行显示所有部门的总薪资。 2. GROUP BY CUBE CUBE 生成跨多个分组维度的汇总数据。 示例统计每个部门和每种职位的薪资总额同时增加汇总数据 SELECT department_id, job_id, SUM(salary) AS total_salary FROM employees GROUP BY CUBE(department_id, job_id);结果 每个部门和职位的薪资总额。每个部门的汇总。所有部门和职位的总汇总。 3. GROUPING 函数 GROUPING 用于判断当前行是否为汇总行配合 ROLLUP 或 CUBE 使用。 示例判断并标识汇总行 SELECT department_id, job_id, SUM(salary) AS total_salary,GROUPING(department_id) AS is_dept_summary,GROUPING(job_id) AS is_job_summary FROM employees GROUP BY CUBE(department_id, job_id);说明 如果 GROUPING(department_id) 返回 1表示当前行是部门的汇总数据。 五、性能优化建议 减少不必要的分组列 只分组需要统计的列减少资源开销。 适当使用索引 对分组列建立索引优化查询性能。 谨慎使用复杂表达式 在分组表达式复杂时可提前处理为中间结果表。 六、练习示例 统计每个部门的员工人数和平均薪资并筛选出员工人数大于 5 且平均薪资超过 4000 的部门 SELECT department_id, COUNT(*) AS employee_count, AVG(salary) AS avg_salary FROM employees GROUP BY department_id HAVING COUNT(*) 5 AND AVG(salary) 4000;按部门和职位分组统计总薪资输出汇总信息 SELECT department_id, job_id, SUM(salary) AS total_salary FROM employees GROUP BY ROLLUP(department_id, job_id);统计每种薪资级别的员工人数并筛选人数超过 10 的薪资级别 SELECT CASE WHEN salary 10000 THEN 高薪WHEN salary 5000 THEN 中等薪资ELSE 低薪END AS salary_level,COUNT(*) AS employee_count FROM employees GROUP BY CASE WHEN salary 10000 THEN 高薪WHEN salary 5000 THEN 中等薪资ELSE 低薪END HAVING COUNT(*) 10;七、小结 GROUP BY 和 HAVING 子句是 SQL 中用于分组统计和结果过滤的关键工具。通过灵活使用它们可以实现各种复杂的数据分析需求。掌握其语法和高级用法将为数据库查询与分析奠定坚实的基础。
http://www.hkea.cn/news/14408790/

相关文章:

  • 建网站要多少钱一个月泸州市住房和城乡建设局网站
  • 济南住宅与房地产信息网官方网站网站做收款要什么条件
  • 阜阳网站建设logo素材大图
  • 官网网站建设平台教育培训网站抄袭
  • 乐清网站艰涩哪里购买网站广告位
  • 用ppt做网站新建网站建设
  • 网站权重低厂房设计装修公司
  • 网站设计一般多少钱沈阳制作网站的公司
  • 做网站给女朋友网站页面创意
  • 企业邮箱价格百度人工优化
  • 双语网站建设费用微平台是什么意思
  • 沈阳做网站直播的公司大连网站流量优
  • 开网店咨询seo短视频入口引流
  • 简单门户网站开发网上注册公司审核需要多久
  • 石家庄网站推广排名深圳注册公司注册资金要求
  • 免费网站源代码杭州seo管理
  • 官方网站域名备案佛山网站建设哪里有
  • 网站自然优化自学洋气的设计公司名字
  • 南京做网站公司哪家好wordpress模块插件
  • 网站域名是什么意思搜索引擎推广是什么意思
  • 亚马逊全球开店官方网站北京 成品网站
  • 上海的网站开发公司电话scrm企业微信管理系统
  • 网校网站模板深圳建筑工程公司排名
  • 学前心理学课程建设网站景点旅游网站开发与设计
  • 那种电影网站怎么建设深圳平面设计
  • 怎么检查网站有没有做跳转订阅号申请
  • 海拉尔做网站多少钱河北建设机械协会网站
  • 网站名称在哪里修改网站建设-部署与发布的题目
  • 免费行情网站的推荐理由关键字排名软件官网
  • 山东嘉祥做网站的有哪几家深圳模具外贸网站建设