를 사용하여 조인합니까? 이 수업은 데이터 분석을 위해 SQL 을 사용하는 전체 길이 자습서의 일부입니다. 시작을 확인하십시오.
이 강의에서 우리가 다룰 것이다:
- 필터링에서 절
- 필터링에 WHERE
- 연습 문제
필터링에서 절
정상적으로, 필터가 처리되는WHERE
절단 두 테이블이 이미 가입하고 있습니다. 조인하기 전에 테이블 중 하나 또는 모두를 필터링 할 수도 있지만 가능합니다., 예를 들어 특정 상황에서 테이블간에 일치 항목 만 만들고 싶습니다.,
를 사용하여 Crunchbase 데이터,의 또 다른 모습을LEFT JOIN
를 들어서 이전 학(이 시간은 우리를 추가ORDER BY
절):
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink ORDER BY 1
을 비교하려면 다음 쿼리를 이전에는 모든 것을tutorial.crunchbase_acquisitions
테이블에 합류했다를 제외한 행하는company_permalink
은'/company/1000memories'
:
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink AND acquisitions.company_permalink != '/company/1000memories' ORDER BY 1
What’s happening 위은 조건문을AND...
을 평가하기 전에 참가 발생합니다., 테이블 중 하나에만 적용되는WHERE
절이라고 생각할 수 있습니다. 는지 확인할 수 있습니다 이것은 단지에서 일어나는 테이블 중 하나이기 때문에 1000memories permalink 은 여전히 표시되는 열에 끌어에서 다른 테이블:
필터링에 WHERE
이동하는 경우 같은 필터는WHERE
절다는 것을 알게 될 것이 필터가 발생한 후에는 테이블이 가입했습니다., 결과는 1000memories 행입에 원본 테이블,하지만 다음 필터링으로 완전히(에서 두 테이블)WHERE
절 표시하기 전에 결과입니다.
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink WHERE acquisitions.company_permalink != '/company/1000memories' OR acquisitions.company_permalink IS NULL ORDER BY 1
당신이 볼 수있는 1000memories 라인은 반환되지 않습(었을 것입 사이에 두 개의 강조 표시된 줄 아래). 또한WHERE
절에서 필터링하면 null 값을 필터링 할 수 있으므로 null 을 포함하도록 추가 줄을 추가했습니다.,
선명하게 SQL 기술
에서 이 설정의 연습 문제,우리가 소개하는 새로운 데이터 세트:tutorial.crunchbase_investments
. 이 테이블은 또한 Crunchbase 에서 공급되며tutorial.crunchbase_companies
데이터와 동일한 많은 정보를 포함합니다. 그것은 다르게 구조화되었지만 투자 당 하나의 행을 포함합니다. 회사 당 여러 투자가있을 수 있습니다—한 투자자가 같은 회사에 여러 번 투자 할 수도 있습니다. 열 이름은 꽤 자명합니다., 중요한 것은company_permalink
tutorial.crunchbase_investments
테이블 지도를permalink
tutorial.crunchbase_companies
테이블. 이 수업을 위해 일부 무작위 데이터가이 표에서 제거되었음을 명심하십시오.
가능성이 매우 필요하다는 것이 몇 가지 탐색적 분석에 이 테이블을 이해할 수 있는 방법을 해결하고 다음과 같은 문제입니다.,
연습 문제
작성하는 쿼리를 보여줍니다 회사의 이름,”상태”(에서 발견되는 회사 table),수의 독특한 투자자는 회사입니다. 가장 적은 것부터 가장 적은 것까지의 투자자 수에 따라 주문하십시오. 뉴욕 주에있는 회사에만 국한하십시오.
그것을 밖으로 시도하고 대답을 볼
연습 문제
쿼리를 작성을 나열하는 투자자의 수에 따라 회사에 있는 그들은 투자했다. 투자자가없는 회사에 대한 행을 포함하고 대부분의 회사에서 최소한으로 주문하십시오.,
시도해보기 대답
Leave a Reply