sql中count函数和distinct函数的配合使用

遇到一个问题:(面试的问题)
题目:
=========================
用户名 商品 数量
A 甲 1
B 乙 2
C 丙 2
B 甲 1
A 丙 2
C 丙 1

写sql语句
要求查出 购买商品两种类型以上(含)的用户集合

数据表中的数据如下:
图一
[img]http://yangtao309.iteye.com/upload/attachment/56242/fda51ebc-c55c-330f-bde4-633ba2eee5b0.jpg[/img]

同事们给出的意见是:


SELECT temp.name
FROM (
SELECT count(tempone.goodsname) as nums,
tempone.name
FROM tempone
GROUP BY tempone.name
) temp
WHERE temp.nums > 1


查出来的结构如下
图二
[img]http://yangtao309.iteye.com/upload/attachment/56244/bf1599ba-98c1-38b8-9bc6-43c2cfd42438.jpg[/img]

C用户是只卖了一种商品 应该被排除...
如是参考了些列文档...[url]http://sql.1keydata.com/cn/sql-count.php[/url]
把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


查出来的结构如下
图三
[img]http://yangtao309.iteye.com/upload/attachment/56246/7c783c7c-3480-3d39-b198-057ed4dd01a1.jpg[/img]
如图三表示 符合了该要求

这个题目其实不难,只是平时用到的时候 没注意总结.
鉴于此 我总结如上

===
总结才是记住东西的根本

你可能感兴趣的:(lost,memory)