R или Mysql: изменить значения столбца на ноль, если они отсутствуют в другой строке того же кадра данных

0

Я извлекаю таблицу из базы данных mysql в r, но мне нужно изменить значения class1 и class2 на null, если значения внутри них отсутствуют в школе столбцов. Я не могу этого сделать. Есть ли способ сделать это либо в R, либо в виде запроса в MySQL? Другими словами, преобразуйте эти значения в null, которые не отображаются в другой строке той же таблицы.

Вот мой стол:

Изображение 174551

И вот как я хочу получить его как: Изображение 174551

Теги:

1 ответ

1
Лучший ответ

Это должно работать:

SELECT
    s.school,
    CASE WHEN q1.class1 IS NOT NULL THEN NULL ELSE s.class1 END AS class1,
    CASE WHEN q2.class2 IS NOT NULL THEN NULL ELSE s.class2 END AS class2
FROM
    schools AS s
    LEFT JOIN (SELECT DISTINCT class1 FROM schools WHERE class1 NOT IN (SELECT DISTINCT school FROM schools)) AS q1 ON s.class1 = q1.class1
    LEFT JOIN (SELECT DISTINCT class2 FROM schools WHERE class2 NOT IN (SELECT DISTINCT school FROM schools)) AS q2 ON s.class2 = q2.class2

    ORDER BY
        s.school

SQLFiddle DEMO

Ещё вопросы

Сообщество Overcoder
Наверх
Меню