GROUP BY 子句:将数据分成若干组
 
 GROUP BY 子句中列名/字段名的书写顺序,并不影响最终的分组结果。

分组结果的聚合

PS:1.将一类 行中多条数据 的情况,视作一种错误。
   
     例子:


这样的话虽然是7列4行,但是SQL只会分析其“市场部’ 组、’运营部’ 组、’设计部’ 组 这个 分组 构成的 虚拟表。则分析的就不是4行数据,而是3行数据,即,无意义

 

解决方法:‘聚合函数’ (无论原字段有多少行,结果字段只有一行)

 

中位数的检索:评价各维度表现高低的方法

找中位数 → 对分组统计的结果进行排序(ORDER BY) →  LIMIT 语句(若数据表 orders 共包含 137 名用户数据。所以如果我们想获取中位数,查询语句需要写成 LIMIT 68, 1)
                                                         –68*2+1=137

HAVING 子句

WHERE 子句作用于原数据表,用来筛 行;
HAVING 子句作用于分组结果,用来筛 分组.
即:筛选行的时候用 WHERE,筛分组的时候用 HAVING

若连接使用等时,不需要英逗,要根据条件来筛选
                                                                   AND   OR   NOT 

 

 

总结:
逻辑:确定数据来源 → 按行进行筛选 → 确定分组 → 按分组进行筛选 → 从结果中挑选部分列 → 排序 → 从结果中限制展示部分行

每执行一步,都会生成一张虚拟表,供下一步骤使用。

 

PS:由于 SQL 标准指出,SELECT 子句是在 WHERE、GROUP BY 子句之后执行的,因此在部分严格执行该标准的环境中,比如 Oracle、MySQL,WHERE 与 GROUP BY 子句里不能使用 SELECT 子句中定义的别名。而在 SQLite 中没有该限制。

 

原文地址:http://www.cnblogs.com/catch-autumn/p/16826654.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性