데이터 공부/데이터베이스 & SQL

08. 에러 해결 방법 Error running query: SELECT list expression references column _PARTITIONTIME which is neither grouped nor aggregated

한소희DE 2021. 7. 26. 20:34

GCP Bigquery에서 해당 코드를 실행하는 데 아래와 같은 에러가 발생했다.

 

 

에러 코드

SELECT 
		count(*) as count, 
        date(_PARTITIONTIME) as partition_date 

FROM  `데이터 보관 경로`
WHERE 
		DATE(_PARTITIONTIME) in (SELECT distinct DATE(_PARTITIONTIME) as partitiontime
                             	 FROM `goodmorning-4f4f0.diff_datalist.diff_currentStreak` 
                             	 order by partitiontime desc limit 7)
AND 	result = 'false'
GROUP BY date(_PARTITIONTIME) 
ORDER BY partition_date

 

❓❗ 에러 살펴보기

Error running query: SELECT list expression references column _PARTITIONTIME which is neither grouped nor aggregated

 

 

 

문제 원인 및 해결 과정

group by에서 alias 미사용 이슈 때문이다.

해당 코드는, select - group by - order by 순으로 적용되기 때문에 select 안에 있는 alias 값을 group by에도 작성해주면 원하는대로 해결이 된다.

 

 

 

 

해결 코드

SELECT 
		count(*) as count, 
        date(_PARTITIONTIME) as partition_date 

FROM  `데이터 보관 경로`
WHERE 
		DATE(_PARTITIONTIME) in (SELECT distinct DATE(_PARTITIONTIME) as partitiontime
                             	 FROM `goodmorning-4f4f0.diff_datalist.diff_currentStreak` 
                             	 order by partitiontime desc limit 7)
AND 	result = 'false'
GROUP BY partition_date
ORDER BY partition_date