一、GROUP BY  Having

聊聚合函数,首先肯定要弄清楚group by 和having 的用法。

SELECT id, COUNT(course) as numcourse, AVG(score) as avgscore

FROM student

GROUP BY id

HAVING AVG(score)>=80;

注意

1、因为聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUP BY语句的参数,否则会出错。

2、where与having的区别,where是在分组前对结果集进行过滤,而having是对group by分组后的结果集进行过滤。

二、常用聚合函数

1. AVG 返回指定组中的平均值,空值被忽略。

例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定组中项目的数量。

例:select count(prd_no) from sales

3. MAX 返回指定数据的最大值。

例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定数据的最小值。

例:select prd_no,min(qty) from sales group by prd_no

5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。

例:select prd_no,sum(qty) from sales group by prd_no

6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

例:select count_big(prd_no) from sales

另外还有一个mysql里面可以使用的特例:group_concat

将group by产生的同一个分组中的值连接起并且默认用逗号分割。

三、自定义聚合函数

MYSQL中没有办法定义聚集函数。

但是sql server 是可以的。

详情可以参考下面的博文

https://www.cnblogs.com/volts0302/p/5545401.html

由于我工作的时候使用mysql较多,所以对自定义聚合函数的应用并不了解,这里就不多说了。

四、子查询

SQL不仅允许简单的SELECT查询,还允许创建子查询,即嵌套在其他查询中的查询。

以下为实例

select m.id as PolicyId,m.PolicyNo,m.PolicyType,m.PolicyStartTime,m.PolicyEndTime,m.BelogOrganizationName,(select GROUP_CONCAT(b.`Name`) from policy_people as b where  b.PolicyIndexId=m.Id and b.Relation=2 ) as InsuredPeople ,(select count(0) from report where  report.PolicyId=m.Id) as CompenCount from policy_people as p inner join policy_index as m on p.PolicyIndexId=m.id where p.CertificateNo=?certificateNo  and  m.PolicyStartTime>?year

最新文章

  1. attributeError:'module' object has no attribute ** 解决办法
  2. MySQL联合查询语法内联、左联、右联、全联
  3. js上下滚屏效果,代码通过测试
  4. 嵌入式应用中CGI编程中POST、GET及环境变量详解
  5. 20160720-java高并发
  6. Servlet & JSP - Cookie
  7. Mysql数据库的索引原理
  8. Java架构必会几大技术点(转)
  9. Arcgis 9.3升级Arcgis10.1需要注重的一点
  10. 批量数据上传的sql.xml
  11. siwft初学(一)
  12. Verilog code
  13. 织梦dedecsm系统"企业简介"类单栏目模版如何修改和调用
  14. ubuntu16.04 安装常见问题解决方案------输入法黑框
  15. DIV水平垂直布局
  16. Linux中CPU亲和性(affinity)
  17. Codeforces Round #518 (Div. 2) B LCM
  18. 经典Java面试题收集(二)
  19. Google guava cache源码解析1--构建缓存器(2)
  20. 设计模式-生成器(Builder)

热门文章

  1. MSDN使用
  2. OpenGL学习进程(7)第五课:点、边和图形(二)边
  3. MongoDB环境配置
  4. 【leetcode刷题笔记】Regular Expression Matching
  5. ResourceBundle和properties 读取配置文件区别
  6. 【atcoder】All Your Paths are Different Lengths[arc102D](乱搞)
  7. HBase-存储-概览
  8. MapReduce-shuffle过程详解
  9. QT 布局时使用 addStretch 可伸缩设置
  10. 刻录DVD.XP系统盘(U盘)