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

网站开发 公司 深圳北京赛车网站开发

网站开发 公司 深圳,北京赛车网站开发,jsp旅游网站开发系统,四川网站建设设计公司哪家好汇总分析是数据报表中的基本功能#xff0c;例如产品销售金额的汇总、学生的平均身高和标准差统计等。SQL 定义了聚合函数#xff0c;可以实现数据的汇总分析。 本文比较五种主流数据库支持的常见聚合函数#xff0c;包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLi…汇总分析是数据报表中的基本功能例如产品销售金额的汇总、学生的平均身高和标准差统计等。SQL 定义了聚合函数可以实现数据的汇总分析。 本文比较五种主流数据库支持的常见聚合函数包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。 聚合函数函数功能MySQLOracleSQL ServerPostgreSQLSQLiteCOUNT()返回查询结果或者表中的行数✔️✔️✔️✔️✔️AVG()计算一组数据的平均值✔️✔️✔️✔️✔️SUM()计算一组数值的总和✔️✔️✔️✔️✔️MAX()返回一组数据中的最大值✔️✔️✔️✔️✔️MIN()返回一组数据中的最小值✔️✔️✔️✔️✔️LISTAGG()将一组字符串合并成一个字符串GROUP_CONCAT()✔️STRING_AGG()STRING_AGG()GROUP_CONCAT() 除 LISTAGG 函数外以上聚合函数在 5 种主流数据库中的实现一致。 我们在使用聚合函数时需要注意两点 聚合函数的参数支持 DISTINCT 关键字表示在计算之前排除重复数据。聚合函数在计算时忽略数据中的 NULL 值COUNT(*) 函数除外。 接下来我们详细介绍这些聚合函数的作用。 使用 COUNT 函数统计行数 COUNT(*) 函数用于统计查询结果或者表中的行数。例如以下语句统计了员工的数量 SELECT COUNT(*) AS 员工数量 FROM employee;查询返回的结果如下 员工数量 ------25员工表中包含 25 条记录也就是 25 名员工。 COUNT 函数也可以统计某个字段或者表达式不为空值的数量例如 SELECT COUNT(emp_id), COUNT(0) FROM employee;查询返回的结果如下 COUNT(emp_id)|COUNT(0) -------------|--------25| 25两个 COUNT 函数分别统计了员工编号和常量 0 不为空的数量两个结果都是 25因为每个员工都有一个编号而 COUNT(0) 和 COUNT(*) 的结果相同。 以下查询在 COUNT 函数中使用了 DISTINCT 关键字 SELECT COUNT(sex) AS 所有性别, COUNT(DISTINCT sex) AS 不同性别 FROM employee;查询返回的结果如下 所有性别|不同性别 -------|-------25| 2员工表中的不同性别只有“男”和“女”因此使用 DISTINCT 关键字之后的结果为 2。 提示除了 DISTINCT 关键字之外我们也可以使用 ALL 关键字表示汇总时不排除重复数据。因为 ALL 是默认值所以我们通常省略。 另外如果参数中存在空值COUNT 函数会忽略这些空值。以下查询统计了员工拥有奖金的情况 SELECT COUNT(*) AS 员工数量,COUNT(bonus) AS 拥有奖金,COUNT(*) - COUNT(bonus) AS 没有奖金 FROM employee;查询返回的结果如下 员工数量|拥有奖金|没有奖金 ------|-------|-------25| 9| 16查询结果显示 9 名员工拥有奖金16 名员工没有奖金。 使用 AVG 函数计算平均值 AVG 函数用于计算一组数据的平均值。例如以下查询统计了所有员工的平均月薪 SELECT AVG(salary) AS 平均月薪 FROM employee;查询返回的结果如下 平均月薪 ----------- 9832.000000所有员工的平均月薪为 9832 元。 如果我们为 AVG 函数指定了 DISTINCT 关键字则会在计算平均值之前排除重复数据。例如1、1、2 的平均值为(12)/2而不是(112)/3。例如以下查询返回了所有不重复月薪的平均值 SELECT AVG(DISTINCT salary) AS 平均月薪 FROM employee;查询返回的结果如下 平均月薪 ----------- 9865.000000去掉重复数据之后的平均月薪有所增加。 另外如果参数中存在空值AVG 函数会忽略这些空值。例如1、2、NULL 的平均值为 (12)/2而不是 (12NULL)/3。以下查询返回了员工不包括没有奖金的员工的平均奖金 SELECT AVG(bonus) AS 平均奖金 FROM employee;查询返回的结果如下 平均奖金 ----------- 6388.888889如果我们想要将没有奖金的员工当作奖金为零处理可以使用 CASE 表达式 SELECT AVG(CASE WHEN bonus IS NULL THEN 0 ELSE bonus END) AS 平均奖金 FROM employee;查询返回的结果如下 平均奖金 ----------- 2300.000000使用 SUM 函数计算总和 SUM 函数用于计算一组数值的总和。例如以下语句返回了所有员工的月薪总和 SELECT SUM(salary) AS 月薪总和 FROM employee;查询返回的结果如下 月薪总和 --------- 245800.00公司所有员工每个月的薪水总和为 245 800 元。 SUM 函数也可以利用 DISTINCT 关键字在计算总和之前排除重复数据一般很少使用。另外如果参数中存在空值SUM 函数会忽略这些空值。以下查询返回了所有员工的平均奖金没有奖金的员工被当作奖金为零处理 SELECT SUM(bonus)/COUNT(*) AS 平均奖金 FROM employee;查询返回的结果和前面的 CASE 表达式示例相同。 使用 MAX 函数返回最大值 MAX 函数用于返回一组数据中的最大值。例如以下查询返回了最晚入职的员工的入职时间 SELECT MAX(hire_date) AS 入职时间 FROM employee;查询返回的结果如下 入职时间 ---------- 2019-05-11最后一位员工的入职时间是 2019 年 5 月 11 日。 MAX 函数支持 DISTINCT 关键字但是没有实际意义因为它对结果没有影响。另外如果参数中存在空值MAX 函数会忽略这些空值。 使用 MIN 函数返回最小值 MIN 函数用于返回一组数据中的最小值。例如以下查询返回了第一位员工的入职时间 SELECT MIN(hire_date) AS 入职时间 FROM employee;查询返回的结果如下 入职时间 ---------- 2000-01-01第一位员工的入职时间是 2000 年 1 月 1 日。 MIN 函数支持 DISTINCT 关键字但是没有实际意义因为它对结果没有影响。另外如果参数中存在空值MIN 函数会忽略这些空值。 使用 LISTAGG 函数连接字符串 LISTAGG 函数用于对字符串进行聚合可以将多行字符串合并成单个字符串。例如以下查询返回了行政管理部门中所有员工的电子邮箱 -- Oracle SELECT LISTAGG(email, ;) AS 收件人 FROM employee WHERE dept_id 1;目前只有 Oracle 实现了该函数函数中的第二个参数用于指定连接字符串的分隔符默认为空。查询返回的结果如下 收件人 ------------------------------------------------------- liubeishuguo.com;guanyushuguo.com;zhangfeishuguo.comLISTAGG 函数支持 WITHIN GROUP 选项可以在合并之前对数据进行排序。例如 -- Oracle SELECT LISTAGG(email, ;) WITHIN GROUP (ORDER BY email) AS 收件人 FROM employee WHERE dept_id 1;其中 ORDER BY 表示对邮箱地址进行排序查询返回的结果如下 收件人 ------------------------------------------------------- guanyushuguo.com;liubeishuguo.com;zhangfeishuguo.comMySQL 提供了执行字符串聚合操作的 GROUP_CONCAT 函数例如 -- MySQL SELECT GROUP_CONCAT(email ORDER BY email SEPARATOR ;) AS 收件人 FROM employee WHERE dept_id 1;其中ORDER BY 表示对邮箱地址进行排序SEPARATOR 指定了连接字符串的分隔符默认为逗号。查询返回的结果和上面的示例相同。 SQLite 提供了和 MySQL 类似的 GROUP_CONCAT 函数但是调用参数不同。例如 -- SQLite SELECT GROUP_CONCAT(email, ;) AS 收件人 FROM employee WHERE dept_id 1;第 2 个参数指定了连接字符串的分隔符默认为逗号。SQLite 中的 GROUP_CONCAT 函数不支持数据排序查询返回的结果和上面的第 1 个 Oracle 示例相同。 Microsoft SQL Server 提供了执行字符串聚合操作的 STRING_AGG 函数例如 -- Microsoft SQL Server SELECT STRING_AGG(email, ;) WITHIN GROUP (ORDER BY email) AS 收件人 FROM employee WHERE dept_id 1;第 2 个参数指定了连接字符串的分隔符WITHIN GROUP 选项用于在合并之前对数据进行排序。查询返回的结果和上面的第 2 个 Oracle 示例相同。 PostgreSQL 提供了和 Microsoft SQL Server 类似的 STRING_AGG 函数但是调用参数不同。 例如 -- PostgreSQL SELECT STRING_AGG(email, ; ORDER BY email) AS 收件人 FROM employee WHERE dept_id 1;第 2 个参数同时指定了连接字符串的分隔符和数据的排序。查询返回的结果和上面的第 2 个 Oracle 示例相同。 以上字符串聚合函数都可以使用 DISTINCT 关键字在合并之前排除重复数据同时还会忽略数据中的 NULL 值。
http://www.pierceye.com/news/111702/

相关文章:

  • 网站做301跳转需解析设计用哪些网站有哪些功能
  • 如何将网站添加到信任站点手机价格
  • 做网站显示上次登录时间代码深圳有哪些招聘网站
  • 网站开发可选择的方案页面设计说明
  • 手机付费咨询网站建设网站正能量免费推广软件晚上
  • 网站群建设技术规范seo收索引擎优化
  • 西安网站托管维护百度首页广告
  • 洛龙区网站设计建设免费网页小游戏
  • 建设摩托125图片大全优化大师怎么删除学生
  • 郑州哪家公司给国外做网站闵行网站推广
  • 微网站 开发提供坪山网站建设
  • 狗狗和人做网站centos6搭建wordpress
  • 培训教育学校的网站建设方案vx小程序怎么制作
  • 泉州网站建设优化公司酒店网络营销推广方案
  • 重庆潼南网站建设公司电话crm客户关系管理平台
  • 怎么做可以访问网站连接加密东莞++网站建设
  • 企业网站的建设与流程数据分析师要学什么课程
  • 重庆营销型网站随做的好谷歌广告投放教程
  • 个人公众号做网站广州市车管所网站建设
  • 上海网站建设公司排名王也诸葛青cp
  • 常用的设计网站有哪些wordpress如何汉化主题
  • 深圳全网营销型网站免费做调查的网站有哪些
  • 设计素材网站知乎济南seo网站推广
  • 网站建设类岗位杭州国家电网 两学一做 网站
  • html静态网站开发自我介绍网站手机客户端开发教程
  • 营销型网站是什么样的桂林北站有核酸检测点吗
  • 网站未备案被阻断怎么做it培训机构哪个好一点
  • 重庆建设注册执业中心网站网络营销百度百科
  • app网站怎么下载个人备案做视频网站
  • 西宁建一个网站公司广东网站备案