浏览 9938 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-04
题目: ========================= 用户名 商品 数量 A 甲 1 B 乙 2 C 丙 2 B 甲 1 A 丙 2 C 丙 1 写sql语句 要求查出 购买商品两种类型以上(含)的用户集合 数据表中的数据如下: 图一 同事们给出的意见是: SELECT temp.name FROM ( SELECT count(tempone.goodsname) as nums, tempone.name FROM tempone GROUP BY tempone.name ) temp WHERE temp.nums > 1 查出来的结构如下 图二 C用户是只卖了一种商品 应该被排除... 如是参考了些列文档...http://sql.1keydata.com/cn/sql-count.php 把count函数和distinct函数组合起来的用法 SELECT temp.name FROM ( SELECT count(DISTINCT tempone.goodsname) as nums, tempone.name FROM tempone GROUP BY tempone.name ) temp WHERE temp.nums > 1 查出来的结构如下 图三 如图三表示 符合了该要求 这个题目其实不难,只是平时用到的时候 没注意总结. 鉴于此 我总结如上 === 总结才是记住东西的根本 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-05
select 用户名 from table group by 商品 having count(商品)>=2
|
|
返回顶楼 | |
发表时间:2008-12-05
最后修改:2008-12-05
xuyao同学
你写错了..... |
|
返回顶楼 | |
发表时间:2008-12-05
不知道这样行不行呢?
select t1.name from temp t1,temp t2 where t1.name = t2.name and t1.goodsname != t2.goodsname group by t1.name |
|
返回顶楼 | |
发表时间:2008-12-05
xinghu 写道 不知道这样行不行呢?
select t1.name from temp t1,temp t2 where t1.name = t2.name and t1.goodsname != t2.goodsname group by t1.name 这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了 |
|
返回顶楼 | |
发表时间:2008-12-06
yangtao309 写道 这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了 不知道哪里影响了查询速度呢? |
|
返回顶楼 | |
发表时间:2008-12-08
最后修改:2008-12-09
xinghu 写道 yangtao309 写道 这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了 不知道哪里影响了查询速度呢? 经过测试 楼上的写法 select t1.name from tempone t1,tempone t2 where t1.name = t2.name and t1.goodsname != t2.goodsname group by t1.name; 可以实现... 我正在添加记录测试 看是否影响速度... |
|
返回顶楼 | |
发表时间:2008-12-09
xinghu 写道 yangtao309 写道 这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了 不知道哪里影响了查询速度呢? 是否影响查询速度 请参见帖子http://www.iteye.com/topic/289339 话不多说... |
|
返回顶楼 | |
发表时间:2008-12-16
select name
from tempone group by name having count(distinct goodname)>1 |
|
返回顶楼 | |
发表时间:2008-12-17
apple_wxs 写道 select name from tempone group by name having count(distinct goodsname)>1 这个写法不错 结果验证是正确的 |
|
返回顶楼 | |