`
yangtao309
  • 浏览: 66826 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
遇到一个问题:(面试的问题)
题目:
=========================
用户名    商品    数量
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 


查出来的结构如下
图三

如图三表示 符合了该要求

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

===
总结才是记住东西的根本
  • 大小: 7.4 KB
  • 大小: 2.7 KB
  • 大小: 2.9 KB
分享到:
评论
9 楼 yangtao309 2008-12-17  
apple_wxs 写道

select name from tempone group by name having count(distinct goodsname)>1


这个写法不错 结果验证是正确的
8 楼 apple_wxs 2008-12-16  
select name
from tempone
group by name
having count(distinct goodname)>1
7 楼 yangtao309 2008-12-09  
xinghu 写道
yangtao309 写道

  这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了

不知道哪里影响了查询速度呢?


是否影响查询速度 请参见帖子http://www.iteye.com/topic/289339
话不多说...
6 楼 yangtao309 2008-12-08  
xinghu 写道
yangtao309 写道

  这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了

不知道哪里影响了查询速度呢?


经过测试 楼上的写法
select t1.name from tempone t1,tempone t2 where t1.name = t2.name and t1.goodsname != t2.goodsname group by t1.name;

可以实现...

我正在添加记录测试 看是否影响速度...
5 楼 xinghu 2008-12-06  
yangtao309 写道

  这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了

不知道哪里影响了查询速度呢?
4 楼 yangtao309 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 


  这一样的写法肯定是影响查询速度的 行不行 仔细测试下就行了
3 楼 xinghu 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 
2 楼 icefishc 2008-12-05  
xuyao同学
你写错了.....
1 楼 xuyao 2008-12-05  
select 用户名 from  table group by 商品 having count(商品)>=2

相关推荐

    SQL复习之聚集函数

    聚合函数也可以在子查询中使用,以提供更复杂的查询逻辑。例如,找出销售额最高的产品类别: ```sql SELECT category_name FROM product_categories WHERE AVG(sales_amount) = (SELECT MAX(avg_sales) FROM ...

    sql函数大全-sql函数大全

    SQL 函数大全是指在 SQL 语言中所使用的各种函数,它们可以帮助开发者更方便地处理数据、进行计算、转换数据类型等。下面是 SQL 函数大全的详细说明: 一、内部函数 内部函数是 SQL 语言中最基本也是最常用的函数...

    SQL内置函数大全

    其中,SQL函数是SQL语言中的一个核心组成部分,它们用于对数据执行各种操作,比如筛选、计算和转换等。SQL函数通常可以分为内置函数和用户定义函数。以下详细介绍各类SQL内置函数的知识点: 一、SQL内部函数 1. ...

    sql server函数大合集

    COUNT_BIG 函数返回组中项目的数量,在使用上和 COUNT 基本上是一样的,只是在返回值上有一点区别,COUNT_BIG 返回的是 bigint 数据类型值,COUNT 返回的是 int 数据类型值。 7. GROUPING 函数 GROUPING 函数返回...

    mysql中distinct用法【SQL中distinct的用法】.docx

    使用 DISTINCT 关键字可以与 COUNT 函数结合使用,以统计表中唯一值的数量。例如: ``` SELECT COUNT(DISTINCT name) FROM A; ``` 这条语句将返回表 A 中 name 列的所有唯一值的数量。注意,这条语句只能统计单个...

    SQL 重复函数 2005

    - **组合使用**:`DISTINCT`可以与其他SQL关键字如`GROUP BY`、`HAVING`等结合使用,实现更复杂的数据筛选和统计需求。 ```sql SELECT DISTINCT column1, SUM(column2) FROM table_name GROUP BY column1; ``` #...

    SQL中的各类函数大全

    在SQL语言中,函数是处理数据的强大工具,可以执行各种计算和操作,包括数学运算、字符串处理、日期和时间管理等。以下是对标题“SQL中的各类函数大全”以及描述中提及的“内部合计函数”和“日期与时间函数”的详细...

    SQL中窗口函数的使用

    在SQL语句的执行顺序中,它位于`FROM/JOIN`、`WHERE`、`GROUP BY`、`聚合函数`、`HAVING`之后,`SELECT`、`DISTINCT`、`UNION`等操作之前。 5. **PARTITION BY** 使用`PARTITION BY`可以将数据分割成不同的分区,...

    SQL集合函数

    COUNT函数 - **功能**:统计满足条件的行数。 - **含义(返回值)**:返回满足条件的行数。 **应用场景**: - 统计表中的总行数。 - 统计特定条件下符合条件的行数。 **示例**: - 统计授课表中不同教师的数量...

    SQL 合计函数.rar

    7. DISTINCT 关键字:在合计函数中,可以与DISTINCT关键字一起使用,去除重复的值后再进行计算。例如,计算销售表中独一无二的产品种类数量: ```sql SELECT COUNT(DISTINCT ProductID) FROM Sales ``` 8.窗口...

    小度写范文【SQL中distinct的用法】mysql中distinct用法模板.docx

    在MySQL中,`DISTINCT`的使用方式和功能与其他SQL数据库系统(如SQL Server、Access等)大体相同,但有一些细微的差别。以下是对`DISTINCT`用法的详细解释: 1. **单列去重**: 当我们需要从一个表中获取唯一的某...

    sql函数大全和对字符串操作函数

    本文将重点介绍SQL中的函数大全,尤其是字符串操作函数,通过详细的例子来阐述这些函数的使用方法。 ### 一、内部函数 #### 1. 内部合计函数 内部合计函数主要用于汇总查询结果集中的特定列数据,如计算行数、...

    使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解

    sum函数中使用if判断条件:{ sum( IF (order_type = 0, real_price, 0) ) AS '当天支付收入', sum( IF (order_type = 1, real_price, 0) ) AS '当天打赏收入', } count(DISTINCT open_id) AS '付费总人数', count

    sql中null值对count的影响

    ### SQL中的NULL值对COUNT函数的影响 在SQL中,`NULL`值的处理是一个非常重要的概念,尤其是在使用聚合函数如`COUNT`时。本篇文章将详细介绍`NULL`值如何影响`COUNT`函数的行为,并通过具体的示例来帮助理解这一...

    SQLSERVER 内置函数

    - **COUNT(DISTINCT COLNAME)**:返回指定列中不同非空值的数量。 - **SUM(COLNAME/EXPRESSION)**:返回指定列或表达式的数值总和。 - **SUM(DISTINCT COLNAME)**:返回指定列中不同非空值的总和。 - **AVG(COLNAME/...

    SQL Server函数

    根据提供的文件信息,本文将详细介绍SQL Server 2005中的几个关键函数:SUM、AVG、COUNT、MAX、MIN,以及COUNT(*)和DISTINCT在实际应用中的使用方法。 ### SUM函数 SUM函数用于计算一组数值的总和。在SQL Server ...

    SQLService 2005函数与语句样例

    从给定的SQLService 2005函数与语句样例中,我们可以总结出一系列重要的SQL知识点,这些示例涵盖了聚合函数、日期时间函数、字符串处理函数以及系统函数等多方面内容,以下是对这些知识点的详细解析: ### 聚合函数...

    SQL操作符和函数

    ### SQL操作符与函数详解 #### 一、SQL语法基础 **SQL**(Structured Query Language)是一种专门用于管理和处理关系型数据库的语言。它不仅用于检索数据,还支持数据更新、插入和删除等多种操作。 ##### 1. 数据库...

    PLSQL单行函数和组函数详解

    这些函数不能用在WHERE子句中,但可以在HAVING子句中使用,因为它们是针对分组后的结果集进行操作的。 在使用组函数时,需要注意`GROUP BY`子句的配合,它将数据按照一个或多个列进行分组,然后组函数会在每个分组...

    SQL 语法 SQL 总结 SQL教程

    SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between SQL Aliases SQL Join SQL Inner Join SQL Left ...

Global site tag (gtag.js) - Google Analytics