两种都能实现去重功能.区别: distinct只是将重复的行从结果中出去: group by是按指定的列分组,一般这时在select中会用到聚合函数. distinct是把不同的记录显示出来 group by是在查询时先把纪录按照类别分出来再查询. group by 必须在查询结果中包含一个聚集函数,而distinct不用.
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的.恩,以后在命名的环节一定要加把劲:).话题扯远了. 2. Group By 的使用: 上面已经给出了对Group By语句的理解.基于这个理解和SQL Server 2000的联
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的.恩,以后在命名的环节一定要加把劲:).话题扯远了. 2. Group By 的使用: 上面已经给出了对Group By语句的理解.基于这个理解和SQL Server 2
group by分组函数,group by name 将查询结果按照name进行分组,相同name的记录一组,配合聚合函数,显示每个name的情况. 1,数据源 表A结构如下: CREATE TABLE C ( ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT, classid INT, sex VARCHAR(10), age INT ) --添加测试数据 Insert into C(classid,sex,age) values(1,'男',20
一.理解group by和聚合函数 先来看下表1,表名为test: 表1 执行如下SQL语句: 1 2 SELECT name FROM test GROUP BY name 你应该很容易知道运行的结果,没错,就是下表2: 表2 可是为了能够更好的理解“group by”多个列“和”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3.下面说说如何来思考上面SQL语句执行情况: 1.FROM test:该句执行后,应该结果和表1一样,就是原来的表. 2.F
第一遍看GROUP BY的介绍时,没看懂. SQLite 的 GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组.在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前. 假设有如下表: sqlite> select * from company; ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- P
我们继续讲解LINQ to SQL语句,这篇我们来讨论Group By/Having操作符和Exists/In/Any/All/Contains操作符. Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按Cat
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的.恩,以后在命名的环节一定要加把劲:).话题扯远了. 2.1 Group By [Expressions]: 这个恐怕是Group By语句最常见的用法了,Group By + [
在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询.比如user_num表: id user num 1 a 3 2 a 4 3 b 5 4 b 7 例1:查询出现过2次的user. 往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制. 错误做法:select * from user_num w
在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条记录上. SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有 国家的总人口数. having是分组(group by)后的筛选条件,分组后的数据组内再筛选 where则是在分组前筛选 通过
原文:http://bbs.landingbj.com/t-0-243202-1.html 默认情况下,MySQL排序所有GROUP BY col1, col2, ....,查询的方法如同在查询中指定ORDER BY col1, col2, .... 如果显式包括一个包含相同的列的ORDER BY子句,MySQL可以毫不减速地对它进行优化,尽管仍然进行排序. 如果查询包括GROUP BY但你想要避免排序结果的消耗,你可以指定ORDER BY NULL禁止排序. 例如: INSERT INTO f
下面为您介绍SQL语句中GROUP BY 语句,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 希望对您学习SQL语句有所帮助. SQL GROUP BY 语法 SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name SQL GROUP BY 实例 我们拥有下面这个 "Orders&
一.完整版SQL语句的查询 select distinct post,avg(salary) from table where id > 1 group by post` having avg(salary)>100 order by avg(salary) limit 5,5 group by:分组之后,分组依据是最小可识别单位,不能再直接获取到其他字段信息,如果想要获取其他字段信息,只能用额外的方法间接获取,上述情况需要你设置严格模式,如果整个SQL语句没有group by默认整体就是
SQL语句各部分的执行顺序 select distinct...from t1 (left/right) join t2 on t1.xx=t2.xx where t1.xx=? and t2.xx=? group by t1.xx having ...order by ... limit .. where: 筛选条件 分组之前 having: 筛选条件 前提:必然先分组 对分组后的结果再次筛选 where,group by,having三者同时出现,则顺序一定为: where....group
一.sql语句的执行顺序 (8)SELECT (9) DISTINCT (11) <TOP_specification> <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_lis