sql distinct
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于sql distinct内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在sql distinct相关知识领域提供全面立体的资料补充。同时还包含 safari浏览器、samba、SAMP 的知识内容,欢迎查阅!
sql distinct相关知识
-
T-SQL DISTINCTDISTINCT关键字主要用来从SELECT语句的结果集中过滤掉重复的记录。演示,演示数据来源http://www.cnblogs.com/insus/articles/1968148.htmlSELECT DISTINCT RId FROM [dbo].[RecordHits] 结果:
-
order by和distinct导致结果显示顺序有问题SQL如下 SELECT DISTINCT a.id, a.num FROM a LEFT JOIN d ON a.id = d.stockId WHERE a.cid = 156662 AND a.status = 3 AND d.wid IN ( 123, ) ORDER BY a.num DESC LIMIT 0,10 分析 去掉limit,查看num大于0的值很多,怎么会取不到? 结果显示,distinct对id进行了重新排序导致,最后limit取了重新排序后的前10条数据。 解决方案修改sql: distinct换成group by order by a.num desc 换成order by a.num desc,a.id 总结 distinct id,会对id
-
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的技巧有这样的一个需求:select count(distinct nick) from user_access_xx_xx;这条sql用于统计用户访问的uv,由于单表的数据量在10G以上,即使在user_access_xx_xx上加上nick的索引,通过查看执行计划,也为全索引扫描,sql在执行的时候,会对整个服务器带来抖动;?12345678910111213root@db 09:00:12>select count(distinct nick) from user_access; +———————-+ | count(distinct nick) | +———————-+ | 806934 | +———————-+ 1 row in set (52.78 sec)执行一次sql需要花费52.78s,已经非常的慢了现在需要换一种思路来解决该问题:我们知道索引的值
sql distinct相关课程
-
SQL Server基础--T-SQL语句 本教程通过对微软SQL Server数据库工具的介绍以及关系型数据库的理解,分析讲解TSQL的基本查询语句和基本用法。其中穿插大量一线实例讲解。
讲师:小雨老师 入门 168113人正在学习
sql distinct相关教程
- DISTINCT 去重 前面小节介绍了如何使用 GROUP BY 对查询数据分组,并且 GROUP BY 能起到有效去重作用,本小节介绍如何使用 DISTINCT 去重。
- SQL Distinct
- 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 |+---------+----------+不错,大家都买了这门课?。
- 4.1 例2 查询用户名和年龄 请书写 SQL 语句,查询得到 imooc_user 中的所有用户名和年龄,要求结果不允许重复。分析:按照上述语法写出查询语句即可。语句:SELECT DISTINCT username,age from imooc_user;结果如下:+----------+-----+| username | age |+----------+-----+| pedro | 23 || mike | 18 || jerry | 23 |+----------+-----+在表中,有两个名为 pedro 的用户,他们年龄也一致,在 Distinct 的作用下只返回了一个 pedro。
- 2. 前言 本小节,我们将一起学习 SQL Distinct。Distinct 关键字既可以用来修饰单字段,也可以用来修饰多字段;在小节中,我们将分别介绍这两种情况的使用。本小节测试数据如下,请先在数据库中执行:DROP TABLE IF EXISTS imooc_user;CREATE TABLE imooc_user( id int, username varchar(20), age int);INSERT INTO imooc_user(id,username,age) VALUES(1,'pedro',23), (2,'mike',18), (3,'jerry',23), (4,'pedro',23);
- 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;
sql distinct相关搜索
-
s line
safari浏览器
samba
SAMP
samplerate
sandbox
sanitize
saper
sas
sass
save
smarty模板
smil
smtp
snapshot
snd
snmptrap
soap
soapclient
soap协议