Мне нужно генерировать сложные операторы выбора, которые меняются на основе входного файла при каждом запуске моего скрипта.
У меня есть список имен, который служит моим списком фильтров, и у меня есть оператор выбора, которыйбыло предложено мне в другой теме.Я не уверен, как сгенерировать то, что мне нужно, не сидя в Google в течение следующих 6 часов, соединяя их вместе.
Мне нужно создать строку MAX (CASE ... для каждого элемента в списке.
list <- df$names
list:
1 square
2 ball
3 dog
4 triangle
5 hamster
6 circle
7 yellow
8 cat
suggested SELECT format:
SELECT
data.loc
, data.type
, MAX(CASE WHEN data.name = 'cat' THEN 1 ELSE 0 END) AS cat
, MAX(CASE WHEN data.name = 'hamster' THEN 1 ELSE 0 END) AS hamster
FROM
data
GROUP BY
data.loc
, data.type
Я считаю, что желаемый результат будет:
SELECT
data.loc
, data.type
, MAX(CASE WHEN data.name = 'square' THEN 1 ELSE 0 END) AS square
, MAX(CASE WHEN data.name = 'ball' THEN 1 ELSE 0 END) AS ball
, MAX(CASE WHEN data.name = 'dog' THEN 1 ELSE 0 END) AS dog
, MAX(CASE WHEN data.name = 'triangle' THEN 1 ELSE 0 END) AS triangle
, MAX(CASE WHEN data.name = 'hamster' THEN 1 ELSE 0 END) AS hamster
, MAX(CASE WHEN data.name = 'circle' THEN 1 ELSE 0 END) AS circle
, MAX(CASE WHEN data.name = 'yellow' THEN 1 ELSE 0 END) AS yellow
, MAX(CASE WHEN data.name = 'cat' THEN 1 ELSE 0 END) AS cat
FROM
data
GROUP BY
data.loc
, data.type