ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL聚合

2021-02-03 23:05:14  阅读:228  来源: 互联网

标签:聚合 SQL member 谓词 team GROUP SELECT


sql聚合的规定:

对表进行聚合查询时,只能在SELECT子句中写下面3种内容:

1.通过GROUP BY子句指定的聚合键

2.聚合函数

3.常量

谓词

日常写SQL语句中,我们会用到"< > ="比较谓词,BETWEEN、LIKE、IN、IS NULL,那么这些谓词背后的原理是什么?

谓词其实是一个特殊的“函数”,返回值为True 或者 FALSE 或者 UNKNOWN,我们在where子句中加入谓词,来返回 值为真 的行。

为什么一定要按照这个规定做?

一个例子

有这么一个表格: 字段为member,team,age

下面是正确和错误的做法

SELECT team, AVG(age) FROM Teams GROUP BY team √

SELECT team, AVG(age), member FROM Teams GROUP BY team   ×

第一种做法是按队伍分组,求每个队伍的平均年龄,这种做法是正确的。

而第二种做法在SELECT语句中多加member列,这种方式是错的,原因是,数据库中的表此时存的是每个人的member,无法求出每个team的member。

使用group by聚合后,sql的操作对象由原来的“行”变为“行的集合”。

虽然没法求出每个team的member是什么?但sql可以求出每个team的最大member是什么?

SELECT team, AVG(age), MAX(member) FROM Teams GROUP BY team   √

标签:聚合,SQL,member,谓词,team,GROUP,SELECT
来源: https://www.cnblogs.com/liuguangshou123/p/14370204.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有