count与distinct的联合使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
count与distinct的联合使⽤
遇到⼀个问题 :
题⽬:
=========================
⽤户名商品数量
A 甲 1
B ⼄ 2
C 丙 2
B 甲 1
A 丙 2
C 丙 1
写sql语句
要求查出购买商品两种类型以上(含)的⽤户集合
数据表中的数据如下:
⼀:
id name goodsname num
1 A JI 1
2 B JK 2
3 C J 3
4 B JKL 4
5 A JKLM 5
6 C J 6
同事们给出的意见是:
Sql代码
1. SELECT
2. FROM (
3. SELECT count(tempone.goodsname) as nums,
4.
5. FROM tempone
6. GROUP BY
7. ) temp
8. WHERE temp.nums > 1
SELECT
FROM (
SELECT count(tempone.goodsname) as nums,
FROM tempone
GROUP BY
) temp
WHERE temp.nums > 1
查出来的结构如下
⼆
name
A
Sql代码
1. SELECT
2. FROM (
3. SELECT count(DISTINCT tempone.goodsname) as nums,
4.
5. FROM tempone
6. GROUP BY
7. ) temp
8. WHERE temp.nums > 1
SELECT
FROM (
SELECT count(DISTINCT tempone.goodsname) as nums,
FROM tempone
GROUP BY
) temp
WHERE temp.nums > 1
查出来的结构如下
三
name
A
B
如三表⽰符合了该要求
还有⼀种查询⽅式是
select
from temp
group by
having COUNT(distinct goodsname) > 1
也可以达到相同的效果
主要总结count 与 distinct的联合使⽤
===
总结才是记住东西的根本。