나는 이것이 당신의 대부분을위한 아주 간단한 질문이 될 것이라 확신합니다,하지만 나를 미치게됩니다 ... 내가 이런 테이블 (단순화)이 있습니다Netezza는 하위 쿼리와 비슷한 것을 지원하지 않습니다 ... 어떤 해결 방법이 있습니까?
내가 추출해야| customer_id | date | purchase amount |
, 매일 그날 구매 한 고객의 수와 현재 구매 한 날의 30 일 전에 적어도 구매 한 고객의 수를 나타냅니다.
나는이 같은 하위 쿼리를 사용하여 시도 :select purch_date as date, count (distinct customer_id) as DAU,
count(distinct (select customer_id from table where purch_date<= date and purch_date>date-30)) as MAU
from table
group by purch_date
네티 하위 쿼리는 지원되지 않습니다 없다는 오류를 반환하고 내가 쿼리를 다시 생각해야한다고. 그러나 어떻게?!?!? case when
문을 사용해 보았지만 작동하지 않았습니다.
select purch_date as date, count (distinct customer_id) as DAU,
count(distinct case when (purch_date<= date and purch_date>date-30) then player_id else null end) as MAU
from table
group by purch_date
가 오류를 반환하지만, MAU와 DAU 열 (잘못이다) 동일 : 사실, 다음. 아무도 도와 줄 수 있습니까? 덕분에 내가하지 믿습니다 네티 할 많은
Netezza는 select 라인의 subselects를 좋아하지 않습니다 ... 당신은 두 개의 쿼리를 작성하는 것이 가장 좋습니다. 하나는 계산하여 mau를 반환하고, 하나는 dau (날짜 별)를 작성하는 것입니다. 이러한 쿼리를 하위 쿼리로 바꾸고 날짜에 함께 결합하고 그 중 하나를 선택하십시오. – Twelfth
감사합니다. 하지만 데이트를 기준으로 그들을 합치려면 MAU 테이블이 날짜별로 그룹화되어 있어야합니다. 그렇다면 이전과 같은 문제가 있습니다 ... 언급 한 코드를 작성 하시겠습니까? 덕분에 많이 – lilloraffa
선택 라인에서 서브 키어를 지원할 수 없다는 것은 쿼리 프로세서로드를 분산시키는 데 사용되는 신비한 netezza FPGA 로직에서 비롯된 것이라고 생각합니다. 나는 대답을 게시했다. .. 조금 추측하고 있었다. 원하는 것은 DAU를 주어진 날짜에 계산하는 쿼리와 MAU를 같은 날짜에 계산하는 쿼리입니다. 둘 다 날짜별로 그룹화하고 from 절에서 하위 쿼리를 호출하여 – Twelfth