로운's 기술노트

Error_Note 본문

내배캠_데이터분석가_'24.04~08/SQL

Error_Note

로운's 2024. 4. 25. 00:27

 

SQL의  Error코드는 총 9자리 숫자 및 간단한 설명으로 구성되어 있다.

숫자는 각각 4자리 + 5자리로 구성되는데, 처음 4자리는 오류의 유형을. 다음 5자리는 특정 오류를 식별하는 고유 식별자이다. (e.g SQL Error [1055] [42000] )

 

 

Error Messege는 두려워할 대상이 아니라
바른 쿼리를 작성하기 위한 지침서 정도로 해석하는 것이 정신건강에 좋다.

 

 

 

 

 

SQL Error [1052] [23000]
그룹화된 해당 컬럼의 참조 값이 없을 경우 발생. 그룹화된 참조 값을 넣어주면 해결된다.
e.g) SQL Error [1052] [23000]: Column 'game_account_id' in group statement is ambiguous

 

 

SQL Error [1054] [42S22]
쿼리에서 해당 컬럼('u.game_account_id')을 찾을 수 없을 때, 즉 해당 테이블 'u'에 존재하지 않거나 오타가 있는 경우에 발생할 수 있다.
해결 방법은 해당 열을 정확하게 참조하거나, 테이블에 해당 열이 있는지 다시 확인해야 한다.
e.g) SQL Error [1054] [42S22]: Unknown column 'u.game_account_id' in 'field list'

 

 

SQL Error [1055] [42000]
Select문에 집계함수가 있을 경우, 모든 컬럼(집계합수 제외)이 Group By절에 추가되어야 한다.
e.g) SQL Error [1055] [42000]: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'basic.p.approved_at' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

 

 

SQL Error [1056] [42000]
해당 컬럼('actorcnt')을 그룹화할 수 없다는 것을 나타내며, GROUP BY 절에 추가하여 간단히 해결가능!
e.g) SQL Error [1056] [42000]: Can't group on 'actorcnt'

 

 

SQL Error [1060] [42S21]
서브쿼리와 메인 쿼리에서 모두 해당 컬럼(serverno)을 선택하고 있어서 발생하며,
해결 방법은 서브쿼리에서 해당 컬럼을 빼면 끝!
e.g) SQL Error [1060] [42S21]: Duplicate column name 'serverno'

 

 

SQL Error [1111] [HY000]
일반적으로 그룹 함수의 잘못된 사용을 나타내며, 집계 함수는 WHERE 절이나 HAVING 절에서는 사용할 수 없다.
e.g) SQL Error [1111] [HY000]: Invalid use of group function

 

 

SQL Error [1140] [42000]
- GROUP BY 없이 집계된 쿼리에서 SELECT 내에 그룹화되지 않은 열이 있다는 것을 나타 냄.
- 해결방법  1. GROUP BY 문을 추가하여 모든 선택한 열을 그룹화  
                   2. SQL 모드를 변경하여 only_full_group_by를 비활성화
                      (데이터 무결성 및 쿼리의 의도를 모호하게 할 수 있으므로 권장하지 않음)
e.g) SQL Error [1140] [42000]: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'basic.u.logid'; this is incompatible with sql_mode=only_full_group_by

 

 

SQL Error [1248] [42000]
'서브쿼리' 또는 '임시 테이블'에 별칭을 지정하지 않았을 때 발생하며, 모든 파생 테이블에 별칭을 지정하면 해결!
e.g) SQL Error [1248] [42000]: Every derived table must have its own alias

 

 

SQL Error [1582] [42000]
- DATEDIFF 함수의 잘못된 사용으로 발생한다 (날짜형식 'YYYY-MM-DD', 매개변수의 수 등).
- 용법 : DATEDIFF(시작 날짜, 종료 날짜)
e.g) SQL Error [1582] [42000]: Incorrect parameter count in the call to native function 'DATEDIFF'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments