다음과 같이 all_data
라는 테이블에 2022년 1월 1일부터 2022년 1월 15일(15일) 동안의 드라이버, 주문, 날짜 목록이 있습니다.
driver_id | 주문_ID | 주문일 |
---|---|---|
1 | 하나 | 2022-01-01 |
1 | b | 2022-01-02 |
2 | c | 2022-01-01 |
2 | d | 2022-01-03 |
이 15일 동안 해당 날짜를 기준으로 하루에 하나 이상의 주문을 완료한 지속적으로 활동하는 드라이버 수를 어떻게 알 수 있나요? 출력은 다음과 같은 테이블이어야 합니다.
주문일 | active_drivers |
---|---|
2022-01-01 | 30 |
2022-01-02 | 27 |
2022-01-03 | 25 |
예를 들어 2022년 1월 1일에 30명의 드라이버 파트너가 그날 최소 1개의 주문을 완료했습니다. 2022년 1월 2일에는 2022년 1월 1일과 2022년 1월 2일에 하나 이상의 주문을 이행한 고유 드라이버 수를 찾아야 합니다. 2022년 1월 3일에는 2022년 1월 1일, 2022년 1월 2일, 2022년 1월 3일에 최소 한 건의 주문을 완료한 드라이버를 집계해야 합니다.
내가 시도한 것
MySQL(아래)에서 비슷한 솔루션을 찾았지만 "조인 조건자에 테이블이 있는 지원되지 않는 하위 쿼리" 오류로 인해 BigQuery에서는 허용되지 않습니다.
으아악Google BigQuery: Rolling Count Distinct 질문도 읽었는데 이는 고정된 45일인 반면 여기서는 일수가 날짜 기반 변수입니다. 하루에 지속적으로 활동하는 운전자의 롤링 수를 찾기 위해 BigQuerySQL에 쿼리를 작성하려면 어떻게 해야 하나요?
먼저 날짜와 운전자의 모든 조합을 찾은 다음 각 날짜에 대한 모든 운전자의 수를 가져옵니다. 이것을 시도해 보세요:
으아악다음 사항을 고려하세요
으아악