본문 바로가기
저장소이야기/MySql

[MySql] SQL Error [1248] [42000]: Every derived table must have its own alias

by 사랑꾼이야 2020. 6. 3.
반응형




SQL Error [1248] [42000]: Every derived table must have its own alias




Alias 명칭이 없어서 나타나는 오류.


원인.

서브쿼리에서 Alias를 지정하지 않아서 나타난 에러.

MySql 공식 문서에서는 FROM 절의 모든 테이블에는 이름이 있어야 함.

Alias는 필수이며, 고유한 이름을 가져야함.


doc.

https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html


변경 전.

SELECT GRADE
     , COUNT(GRADE)
FROM (
	SELECT CASE 
	         WHEN SALARY > 2000 THEN 'High'
	         WHEN SALARY BETWEEN 1000 AND 2000 THEN 'Medium'
	         WHEN SALARY < 1000 THEN 'Low'
	        END AS GRADE
	FROM EMPLOYEES
)
GROUP BY GRADE;


변경 후.

SELECT emp.GRADE
     , COUNT(emp.GRADE) as CNT
FROM (
	SELECT CASE 
	         WHEN SALARY > 2000 THEN 'High'
	         WHEN SALARY BETWEEN 1000 AND 2000 THEN 'Medium'
	         WHEN SALARY < 1000 THEN 'Low'
	        END AS GRADE
	FROM EMPLOYEES
) emp
GROUP BY emp.GRADE;



반응형

댓글