SQL学习之查询技巧 排他查询 只是用过某商品的顾客
2007-02-08 15:25
453 查看
销售表如下
求只使用过2产品的顾客( 没有使用过其他产品) 排他查询
表结构
DECLARE @tb TABLE([customer] varchar(10), [product] varchar(10))
INSERT INTO @tb
SELECT 'A', '1'
UNION ALL SELECT 'B', '2'
UNION ALL SELECT 'B', '1'
UNION ALL SELECT 'C', '2'
UNION ALL SELECT 'C', '2'
UNION ALL SELECT 'D', '1'
UNION ALL SELECT 'E', '2'
UNION ALL SELECT 'C', '2'
查询;
SELECT customer,
Count(product) times
FROM @tb t
WHERE EXISTS (SELECT 1
FROM @tb
WHERE customer = t.customer
AND product = 2)
GROUP BY customer
HAVING Count(DISTINCT product) = 1
结果
customer times
---------- -----------
C 3
E 1
(2 行処理されました)
其他方法
SELECT customer,
Count(* ) times
FROM @tb
WHERE customer NOT IN (SELECT customer
FROM @tb
WHERE product != 2)
GROUP BY customer
整理自http://community.csdn.net/Expert/topic/5342/5342039.xml?temp=.7104914
谢谢hhhdyj(萤火虫)
customer | product |
A | 1 |
B | 2 |
B | 1 |
C | 2 |
D | 1 |
E | 2 |
表结构
DECLARE @tb TABLE([customer] varchar(10), [product] varchar(10))
INSERT INTO @tb
SELECT 'A', '1'
UNION ALL SELECT 'B', '2'
UNION ALL SELECT 'B', '1'
UNION ALL SELECT 'C', '2'
UNION ALL SELECT 'C', '2'
UNION ALL SELECT 'D', '1'
UNION ALL SELECT 'E', '2'
UNION ALL SELECT 'C', '2'
查询;
SELECT customer,
Count(product) times
FROM @tb t
WHERE EXISTS (SELECT 1
FROM @tb
WHERE customer = t.customer
AND product = 2)
GROUP BY customer
HAVING Count(DISTINCT product) = 1
结果
customer times
---------- -----------
C 3
E 1
(2 行処理されました)
其他方法
SELECT customer,
Count(* ) times
FROM @tb
WHERE customer NOT IN (SELECT customer
FROM @tb
WHERE product != 2)
GROUP BY customer
整理自http://community.csdn.net/Expert/topic/5342/5342039.xml?temp=.7104914
谢谢hhhdyj(萤火虫)
相关文章推荐
- SQL学习之查询技巧 排他查询 只是用过某商品的顾客
- SQL学习之查询技巧 查询表是否存在的两种方法
- 看博客园百万数据SQL优化查询技巧学习总结
- SQL学习之查询技巧 查询第3的数据 用一条语句分组,排序 并查询某一排名
- SQL学习之查询技巧 求某日期所在月份的天数
- SQL学习之查询技巧 查询表是否存在的两种方法
- SQL学习之查询技巧 查询第3的数据 用一条语句分组,排序 并查询某一排名
- 学习SQL【3】-查询基础
- SQL 查询总结及技巧
- 学习数据库必须掌握的54条SQL查询语句
- SQL查询艺术学习笔记--SQL事务处理 隔离 锁 与 并发操作
- SQL语句学习手册实例版(本人整理,用来查询)
- 关于mysql的sql语句的汇总(学习笔记)02 (三个字段查询)
- C# SQL 多条件查询技巧
- Mybatis学习总结之动态SQL与模糊查询
- 接着学习SQL查询,练习《数据库系统概论--高等教育出版社》中的例子
- 学习 SQL 语句 - Select(3): 条件查询与模糊查询
- 查询每个年龄的顾客消费金额数的SQL语句
- java 从零开始,学习笔记之基础入门<SQL_Server_常用查询>(二十二)
- 提升MYSQL查询效率的10个SQL语句优化技巧