SQL,正在尝试查找哪些行具有多个条目
我作为一名数据员在一个学校系统工作,在我需要发送给州政府的最新报告中,我需要发送一些关于学生参加考试的数据。很简单 问题源于这样一个事实:当教师或管理者输入关于有多种特殊需要的学生的数据时,他们有时会正确填写,也就是说有多种残疾,有时他们会针对每种特殊需要单独输入数据。例如,一个学生可能有学习障碍和情绪障碍,管理员会输入两个条目,而不是一个条目 我的查询很长,所以我不必为整件事操心,需要这样的东西:SQL,正在尝试查找哪些行具有多个条目,sql,count,case,Sql,Count,Case,我作为一名数据员在一个学校系统工作,在我需要发送给州政府的最新报告中,我需要发送一些关于学生参加考试的数据。很简单 问题源于这样一个事实:当教师或管理者输入关于有多种特殊需要的学生的数据时,他们有时会正确填写,也就是说有多种残疾,有时他们会针对每种特殊需要单独输入数据。例如,一个学生可能有学习障碍和情绪障碍,管理员会输入两个条目,而不是一个条目 我的查询很长,所以我不必为整件事操心,需要这样的东西: select stuff ,morestuff ,CASE When
select
stuff
,morestuff
,CASE
When [**a student is in the list multiple times**]
Then '**Multiple Disabilities**'
When '01'
Then 'Blind'
等等
在我看来,这似乎很容易,但当我尝试将其提交给代码时,它就崩溃了 这对于任何RDBMS都应该是非常通用的。这假设存在一个名为“disabilityname”的列,该列将保存您的值
01
,并假设存在某种类型的studentid
列
如果学生在子查询中多次出现COUNT(*)
,它将返回multiple Disabilities
,否则将返回disabilityname
列,假设它有一个值
SELECT
stuff,
morestuff,
CASE
WHEN cnt.numdisabilities > 1 THEN 'Multiple Disabilities'
ELSE disabilityname
END as disabilityname
FROM
tbl JOIN (
SELECT studentid, COUNT(*) AS numdisabilities FROM tbl GROUP BY studentid
) cnt ON tbl.studentid = cnt.studentid
哪种关系数据库管理系统?如果可以,请至少发布相关表格的结构。@CorranHorn希望它对您有用。我加了一点描述。