distinct用法
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于distinct用法内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在distinct用法相关知识领域提供全面立体的资料补充。同时还包含 damain、dart、dataset 的知识内容,欢迎查阅!
distinct用法相关知识
-
SQL中distinct的用法在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。表A:表B:1.作用于单列select distinct name from A执行后结果如下:2.作用于多列示例2.1select distinct name, id from A执行后结果如下:实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。示例2.2select distinct xing, ming from B返回如下结果:返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了xing和ming列。3.COUNT统计select count(distinct name) from&nb
-
MySQL中distinct和count(*)的使用方法比较首先对于MySQL的DISTINCT的关键字的一些用法:1.在count 不重复的记录的时候能用到,比如SELECT COUNT( DISTINCT id ) FROM tablename;就是计算talbebname表中id不同的记录有多少条。2,在需要返回记录不同的id的具体值的时候可以用,比如SELECT DISTINCT id FROM tablename;返回talbebname表中不同的id的具体的值。3.上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义,比如SELECT DISTINCT id, type FROM tablename;实际上返回的是 id与type同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得id与tyoe都相同的才被排除了,与我们期望的结果不一样。4.这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的。5.其实还有另外一种解决方式,就是使用,SELECT id, type, co
-
MySQL中Distinct和Group By语句的基本使用教程MySQL Distinct 去掉查询结果重复记录DISTINCT使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录。语法:?1SELECT DISTINCT(column) FROM tb_name例子:假定 user 表有如下记录:?1234567uid username1 小李2 小张3 小李4 小王5 小李6 小张SQL 语句:SELECT DISTINCT(username) FROM user返回查询结果如下:?1234username小李小张小王提示使用 DISTINCT 关键字去掉重复记录具有较大的局限性。DISTINCT() 只能包含一个字段且查询结果也只返回该字段而非数据完整记录(如上例所示)。可以尝试使用如下语法:?1SELECT DISTINCT(column),column1,column2,... FROM tb_name该查询结果将返回列出的所有字段,但该查询往往使 column 的唯一性失效,且 column 1,column 2,… 不能放在 DISTINCT(
-
T-SQL DISTINCTDISTINCT关键字主要用来从SELECT语句的结果集中过滤掉重复的记录。演示,演示数据来源http://www.cnblogs.com/insus/articles/1968148.htmlSELECT DISTINCT RId FROM [dbo].[RecordHits] 结果:
distinct用法相关课程
distinct用法相关教程
- DISTINCT 去重 前面小节介绍了如何使用 GROUP BY 对查询数据分组,并且 GROUP BY 能起到有效去重作用,本小节介绍如何使用 DISTINCT 去重。
- 4.1 例2 查询用户名和年龄 请书写 SQL 语句,查询得到 imooc_user 中的所有用户名和年龄,要求结果不允许重复。分析:按照上述语法写出查询语句即可。语句:SELECT DISTINCT username,age from imooc_user;结果如下:+----------+-----+| username | age |+----------+-----+| pedro | 23 || mike | 18 || jerry | 23 |+----------+-----+在表中,有两个名为 pedro 的用户,他们年龄也一致,在 Distinct 的作用下只返回了一个 pedro。
- 4. 多字段查询 Distinct 也可用于多字段查询去重。语法如下:SELECT DISTINCT [col1],[col2] FROM [table_name];其中col表示字段名,table_name表示数据表名称,数字1,2表示多个字段。
- 3. 单字段查询 Distinct 多用于单字段查询去重。语法如下:SELECT DISTINCT [col] FROM [table_name];其中col表示字段名,table_name表示数据表名称。
- 4.1 使用弱外键 接着,我们来模拟用户购买课程。某一天,pedro 购买了 SQL知多少和回首又见Java 这两门课,有了中间表,我们无需改动主表,而是添加记录至中间表即可:INSERT INTO imooc_user_class VALUES(1,1,1), (2,1,2);第二天,mary 购买了 SQL知多少和倚Python屠虫记两门课:INSERT INTO imooc_user_class VALUES(3,3,1), (4,3,3);现在,管理员需要查看数据。首先,他想知道谁都购买了课程,由于购买记录都记载在了 imooc_user_class 表中,我们只需要查询它即可(一个人可能购买多门课程,所以需要 Distinct 去重):SELECT DISTINCT user_id FROM imooc_user_class;+---------+| user_id |+---------+| 1 || 3 |+---------+光有 user_id 可不行,我们需要知道用户名,于是连接一下 imooc_user 即可:SELECT DISTINCT user_id,username FROM imooc_user_class LEFT JOIN imooc_user ON imooc_user_class.user_id = imooc_user.id;+---------+----------+| user_id | username |+---------+----------+| 1 | pedro || 3 | mary |+---------+----------+我们发现,pedro 和 mary 都购买了课程,这与上述一致。管理员还想知道,哪些课程被购买了:SELECT DISTINCT class_id,name FROM imooc_user_class LEFT JOIN imooc_class ON imooc_user_class.class_id = imooc_class.id;+----------+----------------+| class_id | name |+----------+----------------+| 1 | SQL知多少 || 2 | 回首又见Java || 3 | 倚Python屠虫记 |+----------+----------------+不错,三门课都被购买了。管理员更想知道 SQL知多少这门课被谁购买了:SELECT DISTINCT user_id,username FROM imooc_user_class LEFT JOIN imooc_user ON imooc_user_class.user_id = imooc_user.id WHERE imooc_user_class.class_id = 1;+---------+----------+| user_id | username |+---------+----------+| 1 | pedro || 3 | mary |+---------+----------+不错,大家都买了这门课?。
- 1. MySQL 中的聚合操作 聚合函数(aggregation function)又称为组函数。默认情况下聚合函数会对当前所在表当做一个组进行统计。MySQL5.7 中支持的聚合函数如下:聚合函数在这些聚合函数中,我们比较常用的有 AVG、COUNT、MAX、MIN、SUM 等。下面重点介绍这几个聚合函数:AVG():使用格式如下,函数返回expr的平均值,DISTINCT 则用于返回 expr 的不同值的平均值。如果没有匹配的行,AVG() 返回 NULL。AVG([DISTINCT] expr)例如,我们使用 AVG() 函数计算每个职业的会员的平均年龄,其 SQL 语句和执行结果如下:avg 聚合函数COUNT():使用格式如下,返回 SELECT 语句检索的行中 expr 的非NULL值的计数。返回结果是 BIGINT 值。如果没有匹配的行,count()返回0。COUNT(expr)注意: 我们常用的 COUNT(*),其返回取回的记录数,无论它们是否包含 NULL 值。例如,这里我们计算出每个职业的会员数,其 SQL 语句和执行结果如下:count 函数COUNT(DISTINCT …):使用格式如下,该函数返回不相同且非 NULL 的 expr 值的行数。如果没有匹配的行,则 COUNT(DISTINCT) 返回0。COUNT(DISTINCT expr,[expr...])GROUP_CONCAT():使用格式如下,这个函数把来自同一个组的某一列(或者多列)的数据连接起来成为一个字符串。如果没有非 NULL 值,返回 NULL;GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])例如,这里我们将每个职业的会员的年龄连接到一起,其 SQL 语句和执行结果如下:group_concat函数SUM() / MAX() / MIN():这几个聚合函数和 AVG() 函数用法几乎一致,计算某列的和/最大值/最小值,也可以使用 GROUP BY 分组计算:SELECT occupation, SUM(age) FROM member WHERE 1=1 GROUP BY occupation;SELECT occupation, MAX(age) FROM member WHERE 1=1 GROUP BY occupation;SELECT occupation, MIN(age) FROM member WHERE 1=1 GROUP BY occupation;
distinct用法相关搜索
-
daima
damain
dart
dataset
datasource
datediff
datediff函数
datepicker
datetime
db4o
dbi
dcloud
deallocate
debian安装
debugger
debugging
declaration
declarations
declare
decode函数