У меня большой большой набор, но я просто хочу взять первое уникальное значение каждого набора определенного столбца (c.id).
У меня это пока есть, и это работает .. Но мне нужно получить 1 запись для разных c.ID, потому что теперь я получаю несколько c.ID, я просто хочу игнорировать и просто иметь УНИКАЛЬНОЕ или ПЕРВОЕ значение c.ID
Select
s.room,
s.EXPRESSION,
c.ID,
c.COURSE_NAME,
s.ROOM,
t.FIRST_NAME,
t.LAST_NAME,
std.GRADE_LEVEL,
CASE s.SCHOOLID
WHEN 300 THEN 'MiddleSchool'
WHEN 400 THEN 'UpperSchool'
WHEN 200 THEN 'LowerSchool'
WHEN 100 THEN 'ECC'
ELSE 'miau'
END AS "School"
from sections s
INNER JOIN COURSES c ON s.COURSE_NUMBER=c.COURSE_NUMBER
INNER JOIN TEACHERS t ON s.TEACHER=t.ID
INNER JOIN CC co ON s.ID=co.SECTIONID
INNER JOIN STUDENTS std ON std.ID = co.STUDENTID
WHERE s.TERMID IN (2800, 2801, 2803, 2804)
AND t.LAST_NAME='Dilworth'
Спасибо.
И ожидаемый результат
Что вы называете «первым»? Строки в таблице в реляционной базе данных похожи на шары в корзине; нет никакого «приказа», если вы его не примените.
Как вы это выразились, вам все равно, какой именно, поэтому - возьмите любой из них. Простой способ сделать это - использовать одну из функций агрегирования (например, MIN
) и поместить все остальное в предложение GROUP BY
, например
select
s.room,
s.expression,
min(c.ID) max_id
from ...
where ...
group by s.room,
s.expression;
with data as (
Select s.room, s.EXPRESSION, c.ID, c.COURSE_NAME, /* s.ROOM why twice? */,
t.FIRST_NAME, t.LAST_NAME, std.GRADE_LEVEL,
CASE s.SCHOOLID
WHEN 300 THEN 'MiddleSchool'
WHEN 400 THEN 'UpperSchool'
WHEN 200 THEN 'LowerSchool'
WHEN 100 THEN 'ECC'
ELSE 'miau'
END AS "School",
row_number() over (partition by c.ID order by ??) as rn /* which is first? */
from sections s
INNER JOIN COURSES c ON s.COURSE_NUMBER = c.COURSE_NUMBER
INNER JOIN TEACHERS t ON s.TEACHER = t.ID
INNER JOIN CC co ON s.ID = co.SECTIONID
INNER JOIN STUDENTS std ON std.ID = co.STUDENTID
WHERE s.TERMID IN (2800, 2801, 2803, 2804) AND t.LAST_NAME = 'Dilworth'
)
select * from data where rn = 1;
Добавьте образцы данных. Вам легко будет помочь