2013-05-28 5 views
0

인사말 오라클 9i의에서 설정 한 고유의 결과를 가져올 수 있습니다! 누군가가이 시나리오 나 좀 도와 주실 래요어떻게

테이블 : 코스


내 예상 결과가해야 내 요구 사항은
Course id  Course_Name Faculty 
    C001   Engineering Computers 
    C002   Engineering Electronics 
    C003   Medicine  Cardiology 
    C004   Medicine  Neurology 

, 난 전혀 중복으로 코스 이름과 나오긴 ID를 표시해야합니다

C001-> 엔지니어링.

C003-> 의학.

내가 쿼리에 고유 한 사용하면

가 예상 결과를 얻고 있지 않다, 그래서 누군가가 솔루션을 제공 할 수 있습니다, 나는 오라클 9i의 무대를 시작으로입니다.

미리 감사드립니다.

+0

요구 사항이 다소 이상하게 보입니다. 왜 C001 엔지니어링이 아닌 C002 엔지니어링입니까? Distinct는 개별 행을 의미하므로'select distinct course_name ... '을 할 때만 작동합니다. –

답변

0

각 코스 이름 코스 ID (NLS 언어 및 정렬 설정으로 인해 간단한 정의하지 않은)이 '가장'원하는 가정 :

select min(course_id) as course_id, course_name 
from course 
group by course_name; 

이상한 요구 사항처럼 보인다는 - 같은 코스 두 개의 신분증은 비록 다른 학부에 속하더라도 제대로 발음하지 않으며, 당신은 본질적으로 임의의 교수를 선택하고 있습니다; 그러나 9i에서 배우는 것만큼 이상하지는 않습니다. 현재 지원되는 버전에서 배우지 않는 이유는 무엇입니까? 11gR2는 개인적인 용도로 무료입니다. 여기

는 현재 버전에서, min을 포함하여 documentation for aggregate functions이다; 그리고 만약 당신이 정말로 그걸 고수하고 싶다면 9i version.

0

집합체가 필요합니다 : 그룹 "Course_name"에 대한 매핑이 여러 개 있으므로 어쨌든 얻을 수 있습니다.

select max('Course id'), 'Course_Name' from Course group by Course_Name