【转载】sql group by order by
2016-10-25 17:46
573 查看
order by是对字段进行排序,group by 是对字段进行分类,在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。比如,有一个表tt: A B 1 aa 2 nnn 3 fhfh 3 fdgdfggroup by 有一个原则,就是 select 后面的所有列中,没有使用组函数的列,必须出现在 group by 后面。为什么有这个规则,因为,按group by进行分组的话,能够产生唯一的值,组函数,也叫多行函数,就是给我多条记录,我只会产生一个输出。因此,如果没出现在主函数的列里,也没出现在group by后面,那么,有可能那个字段产生不是唯一的值,就没法一一对应匹配组函数很多:avg, sum, max, min, count....组函数,也叫多行函数,就是给我多条记录,我只会产生一个输出。例如:如果,比如,我要是写个sql语句:select A,B from tt group by A,这条语句里,没有使用组函数,A,B都没出现在组函数里,在group by 中也没出现,现在按照A来分组,对A来说,分组后为:1,2,3,可是,对于的B字段,产生的值不唯一,因为A的值为3的时候,B有两条记录,因此,,B没法跟A分组后来匹配,得出的结果有问题: A B 1 aa 2 nnn 3 fhfh但是,如果我改成group by A, B,则是对A,B的组合的唯一来分组,得出的结果就是对的。
如果select A,count(B) from tt group by A,结果为:A count(B)1 12 13 2A没出现在聚合函数count(B)里,但是,出现在了group by后面,这样,我对A进行分组,为1,2,3,我Count(B),得出的也是唯一的,因此,可以匹配。对于这点,仔细理解理解,
如果select A,count(B) from tt group by A,结果为:A count(B)1 12 13 2A没出现在聚合函数count(B)里,但是,出现在了group by后面,这样,我对A进行分组,为1,2,3,我Count(B),得出的也是唯一的,因此,可以匹配。对于这点,仔细理解理解,
相关文章推荐
- sql语句select group by order by where一般先后顺序 转载
- group by Order by 这些sql语句多字段的理解和联想
- 转载 SQL group by语句
- SQL查询语句中select from where group by having order by的执行顺序
- SQL之group by order by 和多字段的理解和联想
- ERROR 1055 (42000): Expression #1 of ORDER BY clause is not in GROUP BY..sql_mode=only_full_group_by
- SQL---Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column '
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
- LinQ to Object --- 有关于Dictionary、SQL(LEFT OUTER JOIN \ Group OrderBy Sum) 操作
- sql 的group by order by having 等等与mongo的对应关系
- sql语句select group by order by where一般先后顺序
- SAP HANA SQL GROUP BY / ORDER BY / OVER / CASE
- SQL关于LEFT JOIN + SUM + IFNULL + GROUP BY + ORDER BY + CASE WHEN 的一些测试
- sql where group by having order by
- SQL IN GROUP BY ORDER BY HAVING LIKE 原理了解
- sql group by order by
- SQL中distinct与group byorder by 的矛盾 解决方案
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains (转载)