`
XinYiTian
  • 浏览: 35724 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
文章分类
社区版块
存档分类
最新评论

用SQL找出相等集合

SQL 
阅读更多

以下数据表记录了供应商和供应商所能提供的零件,
现在需要找出能够提供完全相同零件的供应商。

Create table SupParts
(sno char(2) not null,
Pno char(2) not null,
Primary key(sno, pno));

思路:
证明两个集合相同可采用以下两种方法
1. 若A包含于B,同时B包含于A,则可证明A=B
2. 若A并B 等于 A交B ,则可证明A=B

采用第一种的思路的一个解答如下:

select sp1.sno, sp2.sno
	from SupParts as sp1
	inner join
	SupParts as sp2
	on sp1.pno = sp2.pno
	and sp1.sno < sp2.sno
group by sp1.sno, sp2.sno
having count(*) = (select count(*)
					from SupParts as sp3
					where sp3.sno = sp1.sno)
and count(*) = (select count(*)
					from SupParts as sp4
					where sp4.sno = sp2.sno);


如果交集中成对零件的数目与两个集合各自元素的数量相等,则这两个集合相等。

 

分享到:
评论

相关推荐

    SQL 比较一个集合是否在另一个集合里存在的方法分享

    例如,可以使用`EXISTS`子句或`IN`关键字进行集合比较,或者使用`INTERSECT`操作来找出两个集合的交集,再与原集合进行比较。 总结来说,SQL中比较集合存在性的方法主要包括自定义函数拆分字符串、内连接、`EXISTS`...

    sql server 数据库 语句50条

    通过子查询和`GROUP BY`与`HAVING`子句的结合使用,该语句找出选修了特定老师(如“叶平”)所有课程的学生。它展示了如何确保学生完成了老师教授的全部课程。 ### SQL语句8:课程002成绩低于课程001成绩的学生 ...

    Microsoft SQL Server 2005 Express Edition SP3

    如果您的计算机已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则可以使用 SQL Server 安装程序安装 SQL Server 2000 的默认实例。但是,这样做会禁用已安装的 SQL Server Express 实例。因此,...

    用SQL实现关系代数中近似除与关系整除方法的研究.pdf

    在实际应用中,关系代数的除法运算在处理关联查询时非常有用,比如在需要找出满足特定条件的记录时。使用SQL实现这些操作,需要对SQL语言有深入的理解和熟练的掌握,同时也需要对关系代数有一定的理论知识,以便将...

    复杂查询 sql 课件 sqlsever

    在SQL Server中,复杂查询通常涉及多个表的连接、嵌套查询、集合操作以及聚合函数的使用,以解决更高级的数据检索和分析需求。以下是对给出的课堂练习中各项任务的详细解释: 1. 查询每个学生及其选课情况:这需要...

    SQL语言习题及答案(好)

    - 第6题的两个答案都使用了不同的集合操作来找出具有管理员身份的职工。第一个答案使用了自连接,第二个答案使用了子查询和`IN`操作符。 6. **不等值连接**: - 第6题答案1中的不等值连接(非等值联接)用于找出...

    sql函数大全

    对于Android开发,理解并熟练使用SQL函数是至关重要的,因为许多应用程序都需要与数据库进行交互。以下是一些基本的SQL函数及其详细解释,这些内容通常会包含在“SQL函数大全”中: 1. **聚合函数**: - `COUNT(*)...

    sql认证考试.pdf

    8. 选取属于某一子集合的数据:可以使用`IN`关键字,例如`SELECT * FROM suppliers WHERE SuppCode IN ('S001', 'S002')`。 9. 对字符串进行操作:`SUBSTRING()`函数用于选取子字符串,`LIKE`或`=`用于搜索子字符串...

    SQL21自学通

    SQL的设计灵感来源于集合论和关系代数理论。 - **数据库简史**:数据库的发展经历了从文件系统到关系型数据库系统的演变。最初的文件系统存在数据冗余和难以管理的问题,而关系型数据库通过规范化的方法解决了这些...

    SQL SERVER数据库的查询和视图.pdf

    例如,如果需要从表`T`中找出`T1`小于20的所有行,可以使用如下SQL语句: ```sql SELECT * FROM T WHERE T1 ; ``` 这里,`T`是被操作的表,`T1 是选择条件。执行此查询后,将返回表`T`中所有`T1`值小于20的行。 *...

    可乐的SQL速查文档.pdf

    文档的使用方法是基于用户已经下载并安装好某个SQL工具的前提下,着重于“速查”的功能,用户可以通过搜索关键字来快速找到并查询SQL的相关用法。本篇文档涵盖了SQL学习的基础和进阶知识点,适合初学者和希望提高...

    SQL分析函数进阶

    例如,你可以使用OVER()来计算每个部门的总销售额,或者找出每个季度内的最高销售额等。 2. Rank, Dense_rank, row_number函数: 这些函数用于对数据进行排名。`ROW_NUMBER()`为每一行分配一个唯一的数字,`RANK()...

    零基础学SQL

    - **MAX**和**MIN**: 分别找出最大值和最小值。 - **VARIANCE**和**STDDEV**: 计算方差和标准差。 - **日期/时间函数**: - **ADD_MONTHS**: 向日期添加月份。 - **LAST_DAY**: 返回指定月份的最后一天。 - **...

    MySql高级Sql查询

    例如,你可以用子查询来找出某个字段的最大值,然后在主查询中找到所有与此最大值相等的记录。 3. **聚合函数**:如COUNT(), SUM(), AVG(), MAX()和MIN(),这些函数用于对一组值进行统计计算。例如,COUNT()可以...

    SQL查询中外联结的使用.pdf

    如果查询目标是找出没有选课的男学生姓名,内联结的查询方式需要使用嵌套查询和集合运算,这会使查询变得复杂。而使用外联结则可以简化查询过程。通过左外联结,我们可以轻松获取未选课的男学生姓名,查询语句如下:...

    sql21天自学通

    - GREATEST/LEAST:找出最大/最小值。 - USER:获取当前用户信息。 #### 第五天:SQL中的子句 - **WHERE子句**: - 用于过滤结果集,只显示满足条件的行。 - 示例:`SELECT * FROM employees WHERE salary &gt; ...

    经典的sql数据库函数语句

    例如,在两个或多个表中,如果希望找到某一字段值相同的记录,则可以使用 `IN` 进行查询。 ```sql SELECT * FROM family WHERE id IN (SELECT [id] FROM p_info); ``` 上述语句表示从 `family` 表中选择所有 ...

Global site tag (gtag.js) - Google Analytics