sql 查询 distinc用法 distinct 和group by都需要排序,一样的结果集从执行计划的成本代价来看差距不大,但group by 还涉及到统计,所以应该需要准备工作.所以单纯从等价结果来说,选择distinct比较效率一些. 其实二者没有什么可比性,但是对于不包含聚集函数的GROUP BY操作来说,和DISTINCT操作是等价的.不过虽然二者的结果是一样的,但是二者的执行计划并不相同. 在Oracle9i中: SQL> SELECT * FROM V$VERSION; BANN…
  oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.FIELDSTR.VERSION字段分别进行去重查询,如何使用一个sql搞定? 2.需求分析 注意:是分别对3个字段进行去重,而不是3个字段联合去重. 首先,必须进行三次查询,而将查询结果进行"行合并"需要用到union或union all: 其次,为了区分查询结果属于哪个字段,所以需要3列…
单个字段: select distinct(a) from tableA; 多个字段,利用max()去重  SELECT  * FROM  GM_PPU_RESIDENT_NORBASE g  WHERE  g.ROWID = ( SELECT max( s.ROWID ) FROM GM_PPU_RESIDENT_NORBASE  s  WHERE g.CARD_NO = s.CARD_NO     )…
需求: 一张表是APP表,结构如下: app_category为该游戏所属的类别ID,xml字段类型 另一张表是类别表,就ID对应名称,这就不上图了. 还有一张表是每个游戏的下载记录,结构如下: DownLogs_APPId为对应的游戏 那么需求来了,要查询游戏的下载记录,查询字段中要有游戏的所属类别名称,多个用逗号分隔 查询结果应如下: 最终的执行语句如下: ) as App_Category,DownLogs_IMEI,DownLogs_AddTime from ( ----5 select…
应用服务长久运行,难免要导出一些统计报表. 现在有一个日志表,记录了各种日志,需要导出十月份的登录日志,要求时间按日期显示,且每天用户登陆要去重. 先看日志表的字段构成: logType等于2的是登陆日志,时间显示到时分秒,根据需要,这个SQL很简单,大体分两部步: 1.时间用LEFT(Str,length)函数,截取时间只保留年月日: 2.用GROUP BY对dt.userName分组: 按照这个思路,SQL如下: SELECT LEFT(s.dt,) 登陆时间, s.username 登陆用…
SELECT GET .daytime,    GET.data AS GET,    xh.data AS xh FROM    ( SELECT daytime, SUM ( get_sum ) AS data FROM yuanbao_get GROUP BY daytime ORDER BY daytime ) AS GET,    ( SELECT daytime, SUM ( xh_sum ) AS data FROM yuanbao_xh GROUP BY daytime ORDE…
select articleID from (select aeUID, max(articleID) articleID from [article] group by aeUID) a concat('); 合并字符串…
遇到一个需求,要去重查出某张表的字段一和字段二,但是查出来的结果要按照表中记录的创建时间排序. 于是,第一时间就想到了使用distinct这个去重专用语法了: select distinct col1, col2 from table1 order by create_date; 嗯,自我感觉良好,一运行,抛出了异常,因为select选出的结果中根本没有create_date这个字段,还用这个字段排序,那不就报错了吗,于是改为: select distinct col1, col2, creat…
  Oracle 去重查询 CreateTime--2018年2月28日15:38:45 Author:Marydon (一)使用distinct --查询指定区间内表停诊字段的值 SELECT DISTINCT T.CLOSE_TZ FROM CONSULT_SCHEDULE T WHERE T.SCHEDULE_DATE BETWEEN TO_DATE('2018-01-01', 'yyyy-MM-dd') AND TO_DATE('2018-02-28', 'yyyy-MM-dd'); 说…
单字段去重 db.student.distinct("name"); 多字段去重 db.student.aggregate([{      $group:{            _id: {name: "$name", sex: "$sex"},      }}]) 如果还需要拿出collection中的其他字段,可以使用$push关键字 db.student.aggregate([{      $group:{            _id:…
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都有,也可以说与我一样困惑的有好多人.感谢大神在网上的活跃,我知道了一对一关系存在的必要性. 1.首先就是这种关系出现的场景是什么样子,最好可以举个实际中的需求. 这样的场景有很多,比如:就拿最普通的用户信息来说,数据库中有一个表为user,一个表为user_auth.user表主要存放的字段为用户基…
今天客户提了一个小需求,希望我能提供一条sql语句,帮助他对数据中 _field 这个字段的值去重,并且保留其他字段的数据.第一反应是select distinct,但这种语句在对某个字段去重时,无法保留其他字段,所以select distinct不成立.因为用户对去重没有要求,字段值重复时保留任意一行就行,所以我想到当字段值重复时,选出对应主键最大的那条数据作为保留数据,这样可以实现用户的去重需求.但是用户的表中又没有主键,没办法,我们只好先使用窗口函数创建主键了. 因为平时喜欢用hive o…
select * from dc_restaurants;  31 select DISTINCT (restaurant_name),id from dc_restaurants ; 31 (会按照id和 restaurant_name 联合 去重 ) select DISTINCT (restaurant_name),id from dc_restaurants group by restaurant_name; 17 select restaurant_name,id from dc_re…
原文地址:https://blog.csdn.net/weixin_40326509/article/details/80865646 在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL获取单个字段或多个字段的返回类型: JPA查询单个字段: @Query(value="select age from User u where u.name=?1&…
查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)  例如:  select * from testtable  where numeber in (select number from people group by number ha…
Django---Django的ORM的一对多操作(外键操作),ORM的多对多操作(关系管理对象),ORM的分组聚合,ORM的F字段查询和Q字段条件查询,Django的事务操作,额外(Django的终端打印SQL语句,脚本调试) 一丶Django的ORM外键操作 通过对象查找 ### 正向查找 # 获得图书对象 book_obj=models.Book.objects.get(pk=1) ret=book_obj.pub #pub是Book表的外键字段,存在Book表中. 通过pub可以拿到所关…
原文地址:http://www.ablanxue.com/prone_3552_1.html 1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql); List<Users> users = query.list(); for(Users user : users){ System.…
1.查找表中多余的重复记录(多个字段) select * from vitae a where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*)>1)   2.删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete from vitae a where  (a.peopleId,a.seq) in (select peopleId,seq …
MySQL 使用profile分析慢sql,group left join效率高于子查询 http://blog.csdn.net/mchdba/article/details/54380221 -----------------…
用SQL查询方式显示GROUP BY中的TOP怎样用一个SQL语句来显示 分组后每个组的前几位 比如把一个学校所有学生的成绩按班级分组,再显示每个班级前五名的信息. 班级     学生   成绩 一班     李X       100 一班     王X       99 一班     刘X       98 一班     赵X       97 一班     孙X       96 二班     李W       100 二班     王W       99 二班     刘W       9…
sql中字段名章包含特殊字符的查询方法:例如包含"",student表中字段为:id“学号”.name"姓名". 解决办法:用英文下的 "`"(Tab键上面那个键,不需要shift)把字段名包起来.如: "; 注释:把id"学号"包起来的不是英文单引号,而是英文 "`"(Tab键上面那个键,不需要shift)…
前言: 归一化(区别于标准化)一般是指,把数据变换到(0,1)之间的小数.主要是为了方便数据处理,或者把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权. 不过还是有很多人使用时将归一化(normalization)和标准化(standardization)两个概念混淆,在这里我们就不过多讨论了.这里的归一化主要指的是这个常用的公式: x' = (x - X_min) / (X_max - X_min) 最近使用openlayers添加heatmap图层的时候,查看官方文…
目录 ORM常用字段及参数 创建表 ORM常用字段 ORM字段参数 ORM表关系创建 ForeignKey OneToOneField ManyToManyField 多对多三种创建方式 单表查询 queryset和objects对象 必知必会的16条 双下划线查询 模糊查询 多表查询 外键字段增删改查 跨表查询 基于双下划线跨表查询(链表查询) 聚合查询(分组查询) F与Q 特殊参数choices 数据库查询优化 Django中如何开启事务 ORM常用字段及参数 我们在使用Django框架开发…
分组去重查询,并执行某一个函数 :select  分组字段,聚合函数 from 表名 where 条件 group by分组字段 select 分组字段,聚合函数 from 表名 where 条件 group by分组字段 having过滤条件 例:select cno, avg(degree) from score group by cno having count(sno)>=5: 模糊查询  : like select * from 表名 where 字段 like   '字符串%'  …
SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; //查询student表中所有字段.   --all 查询所有 select all sex from student;   --distinct 过滤重复 select distinct sex from student;   --count 统计 select count(*) from student; selec…
一道sql面试题(查询语句)   id name age 1  a        11 2  b        11 3  c        12 4  d        13 5  e        12 . . . 查询age唯一的那一个 这个应该怎么写 满意答案 热心问友 2010-10-14 select * from table1 where id not in (select age from table1 group by age having count(1)>1)   --Up…
前言:   算法的基本特性在前几篇博客中已经做了详细的说明,经过不断的改进优化,到归仓的时候了,也就是说,该算法告一段落,不再更新. 作为最终的解决方案,简要的总结一下算法特性,以方便读者参阅. l 目的:主要用于多条件模糊匹配. l 贪婪特性:返回满足条件尽可能多的记录. l 权重特性:为关键词分配权重,代表关键词的重要性,在不破坏贪婪特性的前提下,返回权重高的记录. l 必要关键词指定特性:在不破坏贪婪特性和权重特性的前提下,返回的结果中必须包含指定的关键词. l 典型应用:问-答系统,例如…
一,子查询定义: 子查询就是嵌套在主查询中的查询. 子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 但并不是每个位置嵌套子查询都是有意义并实用的. 二,子查询的返回: 一个子查询会返回一个标量(单一值).一个行.一个列或一个表(一行或多行及一列或多列).这些子查询被称为标量.列.行和表子查询 1,单行单列,聚合(标量): 返回的结果集为单个的子查询,叫做单行子查询.单行比较符有: =. >.>=.<.<=…
一.distinct,group by与ROW_Number()窗口函数使用方法 1. Distinct用法:对select 后面所有字段去重,并不能只对一列去重. (1)当distinct应用到多个字段的时候,distinct必须放在开头,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,而且distinct只能放到所有字段的前面 (2)distinct对NULL是不进行过滤的,即返回的结果中是包含NULL值的 (3)聚合函数中的DISTINCT,如 COUNT( ) 会过滤掉为NU…
在Oracle 数据库中,SELECT 语句的基本语法为: SELECT [ALL|DISTINCT] column_name [,expression...] FROM table1_name [, table2_name, view_name, ...] [ WHERE condition ] [ GROUP BY column1_name [, column2_name , ...] ] [ HAVING group_condition ] [ ORDER BY column1_name…