Возвращаемые значения для сравнения - PullRequest
0 голосов
/ 07 февраля 2019

В базе данных есть студенты схемы (имя TEXT, INTEGER math_grade, INTEGER физика_grade).Я хочу выбрать имена всех студентов и столбец, в котором запись будет 1, если есть другой студент с такими же оценками по математике и физике, и это 0 в противном случае.Как я могу написать запрос?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Самостоятельное присоединение:

select s1.name, case when max(s2.name) is not null then 1 else 0 end
from students s1
left join students s2 on s2.name <> s1.name and s2.math_grade=s1.math_grade and s2.physics_grade=s1.physics_grade
group by s1.name
0 голосов
/ 07 февраля 2019

Хммм.,,Я думаю case и exists:

select s.*,
       (case when exists (select 1
                          from students s2
                          where s2.math_grade = s.math_grade and
                                s2.physics_grade = s.physics_grade and
                                s2.name <> s.name
                          )
             then 1 else 0
        end) as is_same_flag
from students s;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...