使用MAX 函数和 GROUP 的时候会有不可预料的数据被SELECT 出来.下面举个简单的例子:想知道每个SCOREID 的 数学成绩最高的分数. 表信息:/*DDL Information For - test.lkscore*/-------------------------------------- Table    Create Table                                                                 ------- …
mysql> select * from test; +----+-------+------+-------+ | id | name | age | class | +----+-------+------+-------+ | 1 | qiu | 22 | 1 | | 2 | liu | 42 | 1 | | 4 | zheng | 20 | 2 | | 3 | qian | 20 | 2 | | 0 | wang | 11 | 3 | | 6 | li | 33 | 3 | +----+…
一.GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集.语法如下: SELECT column1, ... column_n, aggregate_function(expression) FROM tables WHERE predicates GROUP BY column1, ... column_n; 举例 比如说我们有一个学生表格(s…
GROUP BY语句,经过研究和练习,终于明白如何使用了,在此记录一下同时添加了一个自己举的小例子,通过写这篇文章来加深下自己学习的效果,还能和大家分享下,同时也方便以后查阅,一举多得 一.GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集. 语法如下: SELECT column1, column2, ... column_n, aggreg…
一.GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集. 语法如下: SELECT column1, column2, ... column_n, aggregate_function (expression) FROM tables WHERE predicates GROUP BY column1, column2, ... column_…
(本文一切基于SQL SERVER 2008 R2) 先来看一个语句执行过程发生的错误提示: 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'SC.CNO' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中. 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'SC.CNO' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中. 元数据库为Stu_C,含有三个表,S.SC.C.执行的语句如下: use Stu_C select SNO,c…
由于之前没有对group by 语句的执行顺序(执行原理)做深入的了解,所以导致在实际应用过程中出现了一些问题.举个简单的粟子,比如一个表testA中的所有数据如下图: 我现在想从testA中查询username字段,并只取前7位,取了前7位后,想让相同的数据就合并为一条,我就想当然地写了如下语句:“select substr(username,0,7) username from testA where 1=1 group by username;”心想万事大吉了,可执行之后的结果令我诧异了.…
之前写了这么一条sql语句,目的是取出表中itemid最大的那一条数据. SELECT date, MAX(itemid) AS itemid, group FROM mytable GROUP BY group 但是返回来的数据有点出乎意料. 问题是: date的值并不对应max(itemid)所在行数的值. 比如2016-02-02取到最大的itemid,但是返回来的值确实表中的第一条数据的date值,即2016-01-01. 具体原因跟数据库和max函数的机理有关. 据说是mysql的于处…
sql中提供聚合函数可以用来统计,求和,求最值等 那么聚合函数有哪些呢? COUNT    统计行数量 SUM         求某一列的和 AVG          求某一列的平均值 MAX  求某一列的最大值 MIN    求某一列的最小值 下面给出一些具体的用法 首先创建数据表如下: 执行列.行计数(count): COUNT  标准格式: SELECT COUNT(<计数规范>)  FROM 表名; 其中,计数规范包括 -* : 计算所有选择的的行,包括NULL的值 - ALL列名 :…
GROUP BY 语句根据一个或多个列对结果集进行分组 在分组的列上我们可以使用COUNT.SUM.AVG等函数 SELECT column_name,function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name 示例演示1: SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ----------------------------…