首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择组的所有匹配记录

选择组的所有匹配记录
EN

Stack Overflow用户
提问于 2021-02-27 09:25:38
回答 1查看 41关注 0票数 0

我有一个学校表(在SQL Server中)

每所学校都有优先考虑的科目

学校A:

代码语言:javascript
运行
复制
1 : Physics
2 : Math
3 : English

学校B:

代码语言:javascript
运行
复制
1 : Math
2 : History

学校C:

代码语言:javascript
运行
复制
1 : Physics
2 : Math
3 : English
4 : History

学校D:

代码语言:javascript
运行
复制
1 : Physics
2 : Math
3 : English

我希望找到具有完全相同优先级的学校(在本例中为A和D)

我的桌子是这样的

代码语言:javascript
运行
复制
ID  SchoolID  Pri_No  Subject
1   A         1       Physics
2   A         2       Math
3   A         3       English
4   B         1       Math
5   B         2       History
6   C         1       Physics
7   C         2       Math
8   C         3       English
9   C         4       History
10  D         1       Physics
11  D         2       Math
12  D         3       English

我构建了这个查询,但它匹配的是学科基础,而不是学校级别

代码语言:javascript
运行
复制
SELECT  * FROM Schools A inner join Schools B on A.Pri_No=B.Pri_No and A.Subject=B.Subject and A.ID <> B.ID

你知道如何做到这一点吗?

名为Unis的学校表

Uni看起来像这样

代码语言:javascript
运行
复制
SchoolID SchoolName
A        Melbourne
B        Sydney
C        Brisbane
D        Darwin
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-27 10:47:58

一种简单的方法是使用字符串聚合:

代码语言:javascript
运行
复制
select subjects, string_agg(subject, ',') within group (order by schoolid) as schools
from (select schoolid,
             string_agg(subject, ',') within group (order by pri_no) as subjects
      from t
      group by schoolid
     ) s
group by subjects;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66394749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档