sql记录查询重复注意事项(经验提升),in的用法和效率

摘要:
SQL查询重复记录。从dimappnamenewgroupbypackagename中选择*(从dimappname中选择id,newgroupbybackagename,1)id是表的主键。这三个属性可以映射为唯一对应于ID列。进行其他查询时,请仔细分析表内容。如果可以查询多个字段以唯一对应于一个字段,则直接将此字段用作外部比较。在SQL中使用的规则是。

sql查询重复记录,使用:

select * from dimappnamenew as appn
where id
in
(
  select id
  from dimappnamenew group by packagename,storename,app_name having count(*)>1

id是表的主键,三个属性映射后可以唯一对应id这个列,所以用id就行了。

在做其他查询时,认真分析表内容,如果查询多个字段可以唯一对应一个字段,直接用这个字段作为外部对比,会加快效率。是指等号时候。

注意,in在sql里定义的使用规则是,in(value1,value2,value3,。。。。。。),即,in 后比较的是具体的各种取值。

在 in(select 子句)中,select子句 只能返回一个属性 :select 后只能跟表里的一个属性,返回这个属性的不同取值,才能用in做比较。

in的执行效率很差。因为无法用上表的索引。如果用子查询,可以用exist的效率更好。

免责声明:文章转载自《sql记录查询重复注意事项(经验提升),in的用法和效率》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【学习笔记】常见浏览器内核ElementUI 日期选择器 datepicker 选择范围限制下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql 视图

一、使用视图的理由是什么?1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2.查询性能提高。3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。这是在实际开发中比较有用的。例子:假如因为某...

10条技巧优化数据库速度

  大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据库非常的快,有许多技巧能让你优化数据库的速度,使你不浪费服务器的资源。在这篇文章中,我收录了十个优化数据库速度的技巧。   1、小心设计数据库   第一个技巧也许看来理所当然,但事实上大部分数据库的问题都来自于设计不好的数据库结构。   譬如我曾经遇见过将客户端信息和支付信息储存在同一个数据库...

Hive中的排序语法

ORDER BY hive中的ORDER BY语句和关系数据库中的sql语法相似。他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间。 与数据库中 ORDER BY 的区别在于在hive.mapred.mode = strict模式下,必须指定 limit 否则执行会报错。 hive>...

Oracle Data Guard

DG是 Oracle Data Guard的简称。也就是Oracle11g的 数据卫士。 由于在工作中 Oracle和 SQL SERVER2008 同时都需要维护管理。给我的感觉这里的 DG 其实和 Sql Server 2008的镜像实现的功能是一样的(当然更强大一些)。DG 中的物理备用库 尤其和 Sql Server 2008 的镜像实现的功能是一...

4、MySQL 申明变量给查询数据编号

摘自:   https://www.cnblogs.com/qixuejia/archive/2010/12/21/1913203.html   https://blog.csdn.net/arbben/article/details/78665389 1、mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。    mysql定义用户变...

hive函数之~字符串函数

1、字符串长度函数:length 语法: length(string A)返回值: int说明:返回字符串A的长度 hive> selectlength('abcedfg') fromtableName; 7 2、字符串反转函数:reverse 语法: reverse(string A)返回值: string说明:返回字符串A的反转结果 h...