2017-01-23 3 views
1

데이터 소스를 단독으로 필터링하고 싶습니다. SQL에서는 테이블 자체만으로 테이블을 조인합니다. 예를 들어서로에 대해 한 열에 두 개의 필터

,

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’ 

는 I = 변수 'X'와 값 = 1에 대해 'Y'를 동일 만 변수를 제시 할시피. 내 기본 키가 함께 'ID'와 '변수'의미 긴 데이터 파일을 사용하고

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

나는 또한이 같이 쓸 수 있습니다. 따라서 'id'에 variable = ‘X’ AND value = 1이있는 경우에만 variable = ‘Y’ 데이터가 모두 표시되기를 바랍니다. Tableau 대시 보드에서이 프로세스를 어떻게 변환합니까?

자체적으로 데이터 소스를 내부에서 조인하지 않고 수행하는 방법에 대한 제안 사항이 있으십니까? 내부 조인 방법을 시도했지만 내 데이터가 너무 커서 처리 시간이 너무 많이 걸리고 모든 다른 프로세스가 매우 느려집니다.

답변

0

먼저 다른 변경 사항없이 table1에서 데이터 소스를 가리 키기 만하면됩니다. 평범하고 단순합니다.

두 번째로 워크 시트에서 datapane의 id 필드를 선택하고 마우스 오른쪽 버튼을 클릭하여 세트를 만듭니다. 설정 대화 상자의 일반 탭에서 모든 라디오 단추를 선택한 다음 조건 탭으로 전환하십시오. 수식 max(variable = 'x' and value = 1)을 통해 세트를 정의하십시오. 예를 들어 ids_having_an_X1과 같이 의미있는 것으로 설정하십시오. 이렇게하면 조건에 맞는 데이터 행이 하나 이상있는 ID 집합이 만들어집니다. 도움이된다면 SQL IN (...) 절에 포함될 수있는 ID 목록으로 생각하십시오.

필터 선반에서 집합을 사용하여 쿼리 또는 계산에만 해당 ID를 포함 할 수 있습니다 , 또는 다른 선반에.

where 절의 효과를 얻으려면 변수 'Y'만 선택하여 필터 선반에 넣으십시오.

관련 문제