学生组表:
STDNT_GROUP
studentId,CollegeID,studentgroup,flag
1,007,panthers,y
2,003,owls,n
3,007,owls,y
1,007,texans,y
2,003,texans,n
预期输出
1,007
2,003
3,007
我想要独特的学生ID以及他们各自的大学生。
我尝试了这个查询:
select distinct(studentId),collegeID from;
和
select studentId,collegeID from STDNT_GROUP where studentId in(select distinct(studentId) from STDNT_GROUP)";
答案 0 :(得分:7)
使用不带括号的DISTINCT
可以获得您想要的效果。 DISTINCT
应该被视为一个子句,而不是将列名称作为参数传递给的函数。它返回查询返回的超集上的不同行的集合,而不是单个列中的不同值。
SELECT DISTINCT
studentId,
CollegeID
FROM STUDENT_GROUP
答案 1 :(得分:2)
您可以将此用于未排序的结果:
select distinct studentid, collegeid from stdnt_group
或者这个:
select studentid, collegeid from stdnt_group
group by studentid, collegeid
或者您可以向其中任何一个添加order by子句以按顺序检索它们:
[previous query]
order by studentid, collegeid
答案 2 :(得分:1)
问题可能是您在不同的调用中使用了paranthesis。试试吧:
SELECT DISTINCT studentID, collegeID
提供实际获得的输出而不仅仅是预期的输出可能会有所帮助。这可能有助于我们更好地确定可能出现的问题。