请问一下,下面两个有什么区别? 新手问个问题。select 购物人 from 表 group by 购物人 having count(商品名称)>=2select * from 表 where 购物人 in (select 购物人 from 表 group by 购物人 having count(商品名称)>=2)前者不是已经抽出来了吗?更何况他们是同一张表,后者只不过再过滤一下。对吗?请指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思,还不是很明白。。那个子句和第一个SQL是一样的。为什么一个是购买同一种商品的所有记录,一个是哪些人呢?两者有区别吗? 第一个以购物人分组对数据进行聚合,计算出每个"购物人"对应的记录条数。再通过having子句过滤出count(..)大于2的结果这个结果是聚合过的结果,只有购物人和购物总数总额等信息下面那个能找出符合条件的购物人对应的所有记录,这个记录是聚合前的,也就是没有经过group by的。如果你还不明白,就自己建个表测试一下。第二个性能不太高,可以这么写select * from( select tt.*,count(1)over(partition by 购物人)c from tt)where c>2 感谢各位回答。。不过那个over(partition by 购物人)还没弄清楚。。我到网上搜一下。。 创建DBLink后,提示ora-12560 TNS 协议适配器错误 触发器 无效且未通过重新验证 如何在已有小计的查询结果内进行某组数据内的排序呢? 谁能帮我优化一下这个oracle的sql语句? 十万火急:如何在动态语句中使用表名的变量? 数据文件到了4G就不行了? like '%aaa%bbb%' 怎样学好oracle9i,我是初学者. 请帮忙解决一个SQL语句问题--关于修改数据库参数SQL语句--急急!!! 谁能提供 oracel 7.3.2 下载。急!!!!!!!! oracle 连接问题 求助!!我的Oracle怎么装不上???
这个结果是聚合过的结果,只有购物人和购物总数总额等信息
下面那个能找出符合条件的购物人对应的所有记录,这个记录是聚合前的,也就是没有经过group by的。如果你还不明白,就自己建个表测试一下。
第二个性能不太高,可以这么写
select * from(
select tt.*,count(1)over(partition by 购物人)c from tt)
where c>2