2017-01-23 16 views
1

Я хотел бы отфильтровать свой источник данных сам по себе. В SQL это просто INNER JOINNING для таблицы отдельно.Два фильтра по одному столбцу относительно друг друга

Например,

SELECT table1.* 
FROM table1 INNER JOIN (SELECT id FROM table1 WHERE variable = ‘X’ AND value = 1) q1 ON table1.id = q1.id 
WHERE table1.variable = ‘Y’ 

Как вы можете видеть, что я хочу представить только переменную, которая равна «Y» относительно переменной =»X» и значение = 1. я тоже могу написать это, как это,

SELECT * 
FROM table1 
WHERE variable = ‘Y’ AND id IN (SELECT id FROM table1 WHERE variable = ‘X’ AND value = 1) 

Я использую длинный файл данных, который означает, что мой первичный ключ «Идентификатор» и «переменный» вместе. Итак, я хочу, чтобы все данные variable = ‘Y’ были представлены, только если «id» имеет variable = ‘X’ AND value = 1. Как перевести этот процесс на панель инструментов Tableau?

Любые предложения о том, как это сделать без внутреннего соединения с источником данных сами по себе? Я попробовал встроенный способ соединения, но мои данные очень велики, что приводит к слишком большому времени обработки и делает все остальные процессы чрезвычайно медленными.

ответ

0

Сначала укажите источник данных в таблице1 без каких-либо изменений. Легко и просто.

Во-вторых, вернитесь на рабочий лист, выберите поле id в датапане и щелкните правой кнопкой мыши, чтобы создать набор. Выберите все радиокнопку на общей вкладке диалогового окна набора, а затем перейдите на вкладку условия. Определите набор по формуле max(variable = 'x' and value = 1). Назовите свой набор чем-то значимым, как ids_having_an_X1. Это создаст набор идентификаторов, которые содержат по крайней мере одну строку данных, соответствующую вашему условию. Подумайте об этом как о списке идентификаторов, которые могут войти в предложение SQL IN (...), если это помогает

Теперь вы можете использовать свой набор на полке фильтра, чтобы включать только эти идентификаторы в запрос или в вычислениях , или на других полках.

Чтобы получить эффект предложения where, поместите переменную на полку фильтра, выбрав только значение «Y»