Для отображения идентификатора студента и минимальной оценки, набранной этими студентами по любому предмету. Дайте псевдоним как минимум_марки. Сортировать результат по минимальной отметке - PullRequest
0 голосов
/ 25 января 2020

enter image description here

данные в таблице меток:

VALUE      SUBJECT_ID STUDENT_ID                                                
---------- ---------- ----------                                                
    73          1          6                                                
    98          1          1                                                
    68          2          1                                                
    75          3          6                                                
    78          5          6                                                
    75          1          7                                                
    69          4          7     

Я пробовал следующий код, он успешно выполняется и дает желаемый результат, однако он не удается очистить один контрольный пример и IDK почему?

SELECT DISTINCT
    student_id,
    min(value) as MINIMUM_MARK 
FROM mark
WHERE value IN (
    SELECT
        min(value)
    FROM mark
    GROUP BY (subject_id)
)
GROUP BY (student_id)
ORDER BY MINIMUM_MARK;

Ожидаемый результат:

STUDENT_ID MINIMUM_MARK
---------- ------------
     1       68
     7       69
     6       73

Ответы [ 2 ]

1 голос
/ 25 января 2020

Вы можете просто использовать group by следующим образом:

Select student_id,
       Min(value) as minimum_marks
From marks
Group by student_id
Order by minimum_marks

Cheers !!

0 голосов
/ 25 января 2020

Я бы просто использовал ROW_NUMBER здесь:

WITH cte AS (
    SELECT m.*, ROW_NUMBER() OVER (PARTITION BY STUDENT_ID ORDER BY "VALUE" DESC) rn
    FROM mark
)

SELECT STUDENT_ID, MARK
FROM cte
WHERE rn = 1
ORDER BY MARK;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...