다음 관계가있는 특성에 대해이 쿼리를 작성하고 있습니다.중첩 쿼리에서 "그룹화 기준"을 두 번 피하는 방법
State->City->Customer->Service Order.
모든 일대 다. 하위 쿼리는 svc_ord_nbr
으로 그룹화하여 집계하며 외부 쿼리는 다른 집계에서 다른 집계를 수행합니다.
select state, city, cust_name,
count(distinct (case when start_date <> end_date then svc_ord_nbr end)) as not_fixed
from
(SELECT svc_ord_nbr, CUST_NAME,
state, city,
date_trunc('day', min(START_DTM)) as start_date,
date_trunc('day', max(START_DTM)) as end_date
FROM table a inner join...
inner join....
WHERE ......
group by SVC_ORD_NBR,
cust_name,
state,
city) q
group by state, city, cust_name
주와시를 표시하려면 내부 쿼리와 외부 쿼리에서 두 번 그룹화해야합니다. 이것이 최선의 방법인지 궁금합니다.
@GordonLinoff는'date_trunc'를 사용해야했습니다 – ddd
'inner join ....':: 일부 메타 구문이 아닌 실제 쿼리를 게시하십시오. – wildplasser
작업별로 내부 그룹과 외부 그룹의 SVC_ORD_NBR이 같은 순서로 나열된 열이있는 경우 성능이 향상 될 수 있습니다. –