分组依据,同时保留对其他列的访问权限

MogulBomb:

表格为例:

ID,课程代码,开始日期,结束日期,讲师,位置,年份,学期

1,ACC 2112 1EB,1/1/2020,2/1/2020,鲍勃,Main,2020,FA

2,ACC 2112 1EB,1/1/2020,2/1/2020,Bob,Main,2020,SP

3,ACC 2112 1EB,1/1/2019,2/1/2019,Joe,Main,2019,SP

4,ART 2201 1EB,1/1/2020,2/1/2020,Joe,Main,2020,SP

我需要编写一个查询,将上面表中ID为1和2的课程转换为一门课程。这是基于课程代码以及开始和结束日期相同的组合来完成的。该行中的其他数据将有所不同。

我意识到我可以根据课程代码对它们进行分组,并指定开始/结束日期,但是我仍然需要知道这些课程的ID。

所以从本质上讲,我试图创建这些课程代码的映射。结果看起来像。

ID,对应的课程代码

1,ACC 2112 1EB_2020

2,ACC 2112 1EB_2020

3,ACC 2112 1EB_2019_SP

4,ART 2201 1EB_2020_SP

理想情况下,这将是一个视图,但如有必要,我可以使用存储过程。此外,结果中不需要存在第3行和第4行,但如果需要可以是第3行和第4行。

orBeat:

嗨,据我所知,这就是您要寻找的东西:

DECLARE @MyTable TABLE (ID int, CourseCode nvarchar(50), BeginDate Date, EndDate Date, 
             Instructor nvarchar(50), Location nvarchar(50), Year int , Term nvarchar(50))
INSERT INTO @MyTable 
       VALUES(1,'ACC 2112 1EB', '1/1/2020', '2/1/2020', 'Bob', 'Main', 2020, 'FA')
INSERT INTO @MyTable 
       VALUES(2,'ACC 2112 1EB', '1/1/2020', '2/1/2020', 'Bob', 'Main', 2020, 'SP')
INSERT INTO @MyTable 
       VALUES(3,'ACC 2112 1EB', '1/1/2019', '2/1/2019', 'Joe', 'Main', 2019, 'SP')
INSERT INTO @MyTable 
       VALUES(4,'ART 2201 1EB', '1/1/2020', '2/1/2020', 'Joe', 'Main', 2020, 'SP')

--The solution
SELECT ID, CourseCode 
FROM(
    SELECT ID, CourseCode + '_' + CONVERT(nvarchar(4), Year) as CourseCode, 
           COUNT(*) OVER (PARTITION BY CourseCode, BeginDate, EndDate) as Converted
FROM @MyTable) as temp
WHERE Converted > 1

COUNT(*)OVER(PARTITION BY CourseCode,BeginDate,EndDate)将对您合并的课程进行计数,这些课程将根据PARTITION BY部分中的内容进行分组。之后,您只需选择COUNT大于1的所有课程,这意味着这些课程将被合并。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用分组依据聚合R中的数据,并保留非NA的其他列的值

根据其他列的分组依据为列设置值

SQLSERVER分组依据(基于其他列聚合列)

分组时保留其他列

分组时保留其他列

熊猫,分组依据和其他列中的数据计数

SQL 分组依据和其他列的总和

在分组依据中选择其他列值

选择在特定列上带有“分组依据”的语句,但显示其他列以及分组依据

选择最大,分组依据并显示不在分组依据子句中的其他列

c#linq分组依据-访问其他属性,选择新的

在保留所有其他列的同时旋转列

如何分组重复值但保留数据框的其他列

为什么分组依据被强制在特定列而不是其他列

根据其他列的分组依据和条件创建新列

如何在一列中获取具有最小值的行,并按另一列进行分组,同时保留其他列?

在树状视图中使用“分组依据”时,如何对其他列求和?

有什么办法可以通过添加其他列来取消对分组依据数据框的分组

MySQL最新时间戳+分组依据的其他字段

R:如何在保留其他列的同时聚合一些列

如何在保留其他列类型的同时拆分“ data.frame”类型的列?

Python Pandas:仅旋转DataFrame中的某些列,同时保留其他列

在多个索引上连接列的字符串,同时保留其他列

对列进行Groupby以获得计数,同时保留所有其他列不变

获取特定列的所有可能组合,同时保留其他列

如何在排除NaN的同时对列进行分组并计算其他列的总数?

熊猫按三列分组,但保留所有其他列

按月分组,按列对行求和,并保留其他列

如何测试用户无法访问保留有其他用户访问权限的页面?