Получить результат студента из статуса при группировке в MySQL - PullRequest
0 голосов
/ 05 июля 2018

Я создал временную таблицу из записей, которая выглядит как ниже. Я хочу сгруппировать студента, используя идентификатор студента (stu_D). В то время как группировка студента, статус результата будет ПРОЙДЕН, если он прошел весь предмет, и НЕ ПРОЙДЕТ, если он потерпел неудачу хотя бы на один балл.

enter image description here

Ответы [ 3 ]

0 голосов
/ 05 июля 2018
SELECT 
   T.stu_D, T.stuName, IF(T.number_of_failures>0, 'FAILED', 'PASSED') final_result
FROM
(SELECT 
   stu_D, stuName, COUNT(IF(result='FAILED', 1, NULL)) number_of_failures
 FROM your_table
 GROUP BY stu_D, stuName) T;
0 голосов
/ 05 июля 2018

попробуйте этот запрос

 SELECT stu_Name,result
    FROM `marks`
    WHERE stu_D not in
    (SELECT stu_D FROM marks WHERE  result='FAILED')
    GROUP BY stu_D
0 голосов
/ 05 июля 2018

Вы можете попробовать ниже запрос -

 SELECT stu_D
   ,stuName
   ,CASE 
    WHEN T2.CNT = 0 
         THEN 'passed' 
         ELSE 'failed' 
    END status 
FROM (SELECT stu_D
            ,stuName
            ,COUNT(CASE
                   WHEN result = 'FAILED' 
                       THEN 1
                   END) CNT
     FROM T
     GROUP BY stu_D
             ,stuname) T2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...