一个删选数据的例子,使用GROUP、DISTINCT实例解析

   2015-08-07 0
核心提示:今天遇到的问题,纠结了一上午,终于解决了。在此记录下来,自我认为还有很多类似的问题都可以套用这段代码

需求描述:

一个表MyImage,列有:号码ID,路径PATH
如:

ID  PATH
1  C:/
1  C:/
1  D:/
2  C:/
2  C:/
3  A:/
3  C:/
4  D:/

写个SQL语句,返回这样的记录的ID号:相同ID存在不同PATH。如上例子,正确的结果应是:
ID

1

3

(ID2没有不同PATH,ID4只有一条记录不存在不同PATH)

 
这是我的SQL语句:

复制代码 代码如下:

select ID from [MyImage] as A  
  group by ID  
  having  
  (  
  select COUNT(distinct(Path)) from [MyImage] as B where B.ID = A.ID  
  )  
  > 1

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • MySQL 5.7版本sql_mode=only_full_group_by问题
    用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on colu
    02-10
  • mysql5.7配置文件修改sql_mode 重启无效解决方法。this is incompatible with sql_mode=only_full_group_by
    mysql5.7配置文件修改sql_mode 重启无效解决方
    whereis my.cnf找到配置路径:/etc/my.cnf找到[mysqld],在下面添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION重要:如果没有[mysqld],一定要先添加[mysqld]再在下
    02-10
  • mysql 8 查询报错(sql_mode=only_full_group_by)
    mysql 8 查询报错(sql_mode=only_full_group_by
    Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_
    02-10
  • MYSQL:SQL中Group By的使用
    MYSQL:SQL中Group By的使用
    SQL中Group By的使用 1、概述2、原始表3、简单Group By4、Group By 和 Order By5、Group By中Select指定的字段限制6、Group By All7、Group By与聚合函数8、Having与Where的区别9、Compute 和 Compute By1、概述“Group By”从字面意义上理解就是根据“By”
    02-10
  • MySQL 5.7.9版本sql_mode=only_full_group_by问题
    MySQL 5.7.9版本sql_mode=only_full_group_by问
    用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on colu
    02-10
  • oracle与mysql的group by语句
    之所以去纠那么细节的问题,是因为之前有过一个这样的场景:有个同学,给了一条数据库的语句给我,问,为啥这样子的语句在oracle语句下执行不了。1select * from xx where xxx is not null group by yy; 拿到这条语句的第一时间,其实,我也并没
    02-10
  • Mysql 分组查询出现'this is incompatibl
    由于Mysql自动开启了 only_full_group_by,所以若查询的字段不在group by里面,则分组报错。解决办法其一:mysql配置,关闭only_full_group_by,这种办法自行百度下面说第二种办法:除去group_by 以外的参数加上any_value(*) 如:SELECT type_id,any_value(`
    02-10
  • MySQL 5.7.9版本sql_mode=only_full_group_by
    这会导致select中只能出现group by后面出现的表的字段。其实如果使用其他表的字段,聚合函数对无法对应其他表的字段。建议放在子查询里。 如果想打破这个规则,可以设置sql_mode变量,将ONLY_FULL_GROUP_BY去掉即可。
    02-10
  • MySQL的SQL语句优化-group by语句的优化
    原文:http://bbs.landingbj.com/t-0-243202-1.html 默认情况下,MySQL排序所有GROUP BY col1, col2, ....,查询的方法如同在查询中指定ORDER BY col1, col2, ...。如果显式包括一个包含相同的列的ORDER BY子句,MySQL可以毫不减速地对它进行优化,
    02-09
  • sql server 怎么实现mysql中group_concat,列转
    create table tb(id int, value varchar(10))insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2, 'ccc') goSEL
    02-09
点击排行