我有学生成绩的数据。每个学生都有5门课。很少有学生在数据库中有超过5项记录。学生在“科学”方面有2项记录,其余科目各有1项。总共有6项记录。这里给出了一个例子。
样本数据:
RollNo Subject TOTAL_MARKS
-------------------------------------
11-119-302 ENGL 34
11-119-302 MATH 56
11-119-302 SCIE 44
11-119-302 SCIE 24
11-119-302 URDU 76我想得到那些有重复科目的学生的所有领域。
必需的输出:
RollNo Subject TOTAL_MARKS
-------------------------------------
11-119-302 ENGL 34
11-119-302 ENGL 56
11-119-333 SCIE 44
11-119-333 SCIE 24发布于 2014-08-13 08:39:56
看这个
DECLARE @MARKS TABLE (ROLLNO VARCHAR(20),SUBJECT VARCHAR(20), TOTAL_MARKS INT)
INSERT INTO @MARKS VALUES
('11-119-302','ENGL',34),
('11-119-302','MATH',56),
('11-119-302','SCIE',44),
('11-119-302','SCIE',24),
('11-119-302','URDU',76)
SELECT *
FROM @MARKS M JOIN (
SELECT ROLLNO,SUBJECT,COUNT(*) C FROM @MARKS GROUP BY ROLLNO,SUBJECT HAVING COUNT(*) > 1) LU
ON M.ROLLNO = LU.ROLLNO AND M.SUBJECT = LU.SUBJECT--结果

发布于 2014-08-13 08:29:40
试试这个:
select * from results where
num in ( select num from results group by num having count(num)>2)https://stackoverflow.com/questions/25281353
复制相似问题