select-关于mysql中查询重复数据的疑问

问题描述

关于mysql中查询重复数据的疑问

我有一个表叫做sc.

现在要查询score中有相同分数的信息,
查询的sql语句是
select * from sc where score in (select score from sc group by score having count(score)>1);

我很好奇的是group by的执行顺序是比 having先执行啊,
按道理,执行了之后重复的score值是没有的,怎么还能再用having 来查出count(score)>1
的重复的score记录啊...好奇怪..谁能解答下。。谢谢

解决方案

我的理解:group by 先按score分组(90,90) (100,100)... 之后having对每一组进行判断是否满足count(score)>1 满足则保留这一组,否则舍弃,之后再取出满足条件的score

解决方案二:

having的条件是group先分组之后再进行条件判断的

解决方案三:

你这条sql最好写成这样select * from sc where score in (select score from (select score from sc group by score having count(score)>1) as scor);
这样是可以执行的。

时间: 2024-08-27 01:40:51

select-关于mysql中查询重复数据的疑问的相关文章

MySQL中删除重复数据的简单方法_Mysql

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content

php-PHP无法在MySQL中查询中文数据

问题描述 PHP无法在MySQL中查询中文数据 跪求大神来回答!我的PHP脚本已经实现了MySQL数据库的链接.但是发现在HTML页面上输入中文查询,显示的是数据库中没有这个信息. 但其实我的MySQL里面有这条中文数据的.网上说的设置utf8,gbkgb2312我都试过了,也没有用. 我的并不是说页面显示中文乱码,而是数据库中无法执行查询中文这一操作.希望大神能帮个忙! 解决方案 $inputData = iconv(""GB2312""UTF-8"&q

使用aggregate在MongoDB中查询重复数据记录的方法_MongoDB

MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). aggregate() 方法 MongoDB中聚合的方法使用aggregate(). 语法 aggregate() 方法的基本语法格式如下所示: >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 我们知道,MongoDB属于文档型数据库,其存储的文档类型都是JSON对象.正是由于这一特性,我们

MySQL将表a中查询的数据插入到表b中

 MySQL将表a中查询的数据插入到表b中 如果表b存在 1 <code class="sql"><code class="sql"><code class="sql">insert into b select * from a;</code></code></code> 如果表b不存在 1 <code class="sql"><code

mysql-JSP怎么获取在MySql中查询到的数据中的指定值?

问题描述 JSP怎么获取在MySql中查询到的数据中的指定值? 这是我的table结构,一共6列,主键是id,table名是user,现在想通过查找username来获取指定username的name值,并存入session中,用SELECT * FROM user where 语句可以获取一行值,如果我只要取name列的值,代码应该怎么写呢?比如我想取username为zeng的用户的name值,应当怎么写?之前遇到个问题卡了很久,提问求个例子之后大家都只说个大概思路,无奈只好把问题拆分开来问

入门php在mysql中查询数据

问题描述 入门php在mysql中查询数据 数据库中有张表有主键pmcode还有其他属性,我现在想通过pmcode判断某个用户是否存在,存在的话将其信息取出,代码如下: //拆分发来的信息得到会员卡号 $arry=explode("+",$form_Content); $memberid =$arry[1]; //连接数据库 $link=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_

MSSql简单查询出数据表中所有重复数据的方法_MsSql

本文实例讲述了MSSql简单查询出数据表中所有重复数据的方法.分享给大家供大家参考,具体如下: 这里直接给出下面的例子: SELECT * FROM SYS_LogContent slc WHERE slc.LogInfo_ID IN ( SELECT slc2.LogInfo_ID FROM SYS_LogContent slc2 GROUP BY slc2.LogInfo_ID HAVING COUNT(*)>1 ) 简单说明: 关键代码在于上面的括号中.要想查询出所有重复的数据,可以按照某

MSSql简单查询出数据表中所有重复数据的方法

本文实例讲述了MSSql简单查询出数据表中所有重复数据的方法.分享给大家供大家参考,具体如下: 这里直接给出下面的例子: SELECT * FROM SYS_LogContent slc WHERE slc.LogInfo_ID IN ( SELECT slc2.LogInfo_ID FROM SYS_LogContent slc2 GROUP BY slc2.LogInfo_ID HAVING COUNT(*)>1 ) 简单说明: 关键代码在于上面的括号中.要想查询出所有重复的数据,可以按照某

mysql随机查询若干条数据的方法_Mysql

在mysql中查询5条不重复的数据,使用以下: 复制代码 代码如下: SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了.但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据. 复制代码 代码如下: SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX