Как использовать вторую таблицу для назначения фиктивной переменной? - PullRequest
0 голосов
/ 23 января 2019

У меня есть два набора данных. Одна - это переменная с несколькими переменными, включающая переменную id (более одного элемента имеют одинаковый идентификатор), вторая - вектор различных номеров идентификаторов.

Я хочу обновить первый набор данных, присваивая значение 1, если запись имеет идентификатор, который находится во втором наборе данных.

Является ли объединение двух лучших способов сделать это? Или есть такой способ, как

UPDATE `directory.dataset_1`
SET dummy = IF(id IN dataset_2.id =1,1, 0)
WHERE TRUE;

Если бы проблема была решена в R, пример игрушки был бы:

dataset_1 <- 
data.frame(c("000","001","010","011","000"),c("a","b","c","d","e"))
names(dataset_1) <- c("id","other")

dataset_2 <- data.frame(c("000","001"))
names(dataset_2) <- c("id")

result <- data.frame(c("000","001","010","011","000"),c("a","b","c","d","e"), 
c(1,1,0,0,1))
names(result) <- c("id","other","dummy")

1 Ответ

0 голосов
/ 23 января 2019

Логика должна идти ГДЕ не в КОМПЛЕКТЕ, попробуйте ниже

(Примечание: я не уверен из вашего сценария, должен ли идентификатор = 1 в наборе данных_2, поэтому удалите WHERE из подзапроса, если нет);

    UPDATE dataset_1
    SET dummy = 1
    WHERE ID IN (SELECT ID
                    FROM dataset_2
                    WHERE ID = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...