我有一个Table1,它与大学课程有关,员工可以运行它们,它看起来像这样:
它建立在少量联接上,并按StudySemester,SchoolSubjectId,EmployeeId分组。 StudySemester实际上是一个ID,例如,它是指信息学的第一年。 我想取出一些数据,想要得到这样的东西:
只有少数几个可用员工中的一个被分配到特定课程,而我希望它是随机完成的。也就是说,员工13、15、17可以教ePhs,StudySemester = 1000,但是应该选择一个-例如,员工15,但也可以是13或17,都没关系。 我不知道这些确切的值,这就是为什么我不能写…WHERE EmployeeId = 15的原因。
抱歉,如果我的帖子不够清楚,我是第一次来这里。 预先感谢!
答案 0 :(得分:2)
您可以将row_number()
函数与newid()
一起使用:
select t.*
from (select t.*, row_number() over (partition by CourseSchoolSubjectId, StudySemester order by newid()) as seq
from table t
)
where seq = 1;