반응형

2024/05/19 3

[SQL] GROUP BY와 ORDER BY 같이 쓸때 주의할 점

GROUP BY와 ORDER BY절은 SQL문을 작성할 때 매우 많이 사용되는 구문입니다. 단, 이 2가지 절을 함께 사용할 때는 주의해야 할 점이 있는데요. 이번 포스팅에서는 GROUP BY절과 ORDER BY절을 함께 사용할 때 발생할 수 있는 문제점과 해결방법에 대해서 알아보겠습니다. GROUP BY와 ORDER BY를 함께 사용하는 쿼리 예시아래 코드를 한번 살펴보겠습니다. 각 부서별로 평균 급여를 계산하고, 평균 급여가 높은 순서대로 데이터를 출력하는 쿼리입니다.SELECT department_id, AVG(salary) AS avg_salaryFROM employeesGROUP BY department_idORDER BY avg_salary DESC; 출력되는 결과는 아래와 같습니다.| dep..

[MySQL] group by와 only_full_group_by 모드 완벽 이해하기

MySQL을 사용하다 보면 아래 오류 메시지를 만날 때가 있습니다.this is incompatible with sql_mode=only_full_group_by MySQL에서 기본적으로 활성화되어 있는 'ONLY_FULL_GROUP_BY' 모드가 내가 작성한 SQL문과 충돌하면서 발생하는 오류 메시지인데요. 왜 이런 오류가 발생하는지, group by를 사용할 때 주의할 점은 무엇인지, 어떻게 이런 오류를 해결할 수 있는지 알아보겠습니다. 1. ONLY_FULL_GROUP_BY 모드란?MySQL의 ONLY_FULL_GROUP_BY 모드는 표준 SQL 가이드라인에 부합하지 않는 (GROUP BY절이 포함된) 쿼리를 방지하기 위한 설정입니다. 이 모드를 활성화되면, GROUP BY 절에 포함되지 않은 ..

SQL 오래 사용해도 착각하기 쉬운 3가지 (COUNT(*), alias, DISTINCT)

1. COUNT(*)의 의미와 오해집계함수 중 하나인 COUNT는 특정 조건에 맞는 행의 수를 계산하기 위해 사용합니다. COUNT 함수를 사용하는 가장 기본적인 방법 중 하나가 바로COUNT(*) 입니다. employees 테이블에서 전체 행(레코드)의 개수를 카운트하기 위해 아래와 같이 사용합니다.SELECT COUNT(*) FROM employees; 이때 행의 개수가 100개라면 아래와 같이 결과를 출력합니다.| COUNT(*) ||----------|| 100 | 따라서 COUNT(*)은 각 테이블의 고유한 키(PRIMARY KEY)의 개수를 출력한다고 볼 수도 있습니다. 즉, COUNT(PRIMARY KEY)와 같은 방식인 거죠. 하지만 SQL을 공부하면서 우리는 "SELECT *..

반응형