programing

SQL 절 "GROUP BY 1"의 의미는 무엇입니까?

sourcejob 2022. 9. 24. 10:23
반응형

SQL 절 "GROUP BY 1"의 의미는 무엇입니까?

누군가가 SQL 쿼리를 보냈습니다.GROUP BY절은 다음 문장으로 구성됩니다.GROUP BY 1.

이거 오타겠죠?에일리어스 1이 지정된 열은 없습니다.이게 무슨 뜻일까요?오타가 틀림없다고 생각하는 게 맞나요?

즉, 결과 집합의 첫 번째 열을 기준으로 그룹화됩니다.를 사용하여 동일한 작업을 수행할 수 있습니다.ORDER BY.

SELECT account_id, open_emp_id
         ^^^^        ^^^^
          1           2

FROM account
GROUP BY 1;

위 쿼리에서GROUP BY 1를 참조합니다.first column in select statement어느 것이account_id.

또, 다음과 같이 지정할 수도 있습니다.ORDER BY.

주의: ORDER BY 및 GROUP BY의 숫자는 항상 0이 아닌 1로 시작합니다.

필드 이름을 기준으로 그룹화할 뿐만 아니라 테이블 내 필드의 순서 또는 위치를 기준으로 그룹화할 수도 있습니다.1은 첫 번째 필드(이름에 관계없이), 2는 두 번째 필드에 해당합니다.

테이블/뷰 구조가 변경될 수 있으므로 특정 항목을 그룹화할 경우 일반적으로 이 방법은 권장되지 않습니다.또한 테이블 필드를 기억하지 않으면 SQL 쿼리의 기능을 빠르게 이해하기 어려울 수 있습니다.

고유 세트를 반환하거나 임시 검색을 신속하게 수행하는 경우 입력을 줄이기 위한 약어 구문을 사용하는 것이 좋습니다.언젠가 다시 쿼리를 실행할 예정이라면 향후의 혼란이나 예기치 않은 문제(스킴 변경에 의한)를 피하기 위해 교환을 권장합니다.

select 절의 첫 번째 필드별로 그룹화됩니다.

즉, *"선택 절의 첫 번째 열로 그룹화"를 의미합니다.항상 사용GROUP BY 1와 함께ORDER BY 1.

를 사용할 수도 있습니다.GROUP BY 1,2,3..편리하지만, 그 조건에 주의할 필요가 있습니다.선택한 열을 다른 사람이 수정하여 표시되지 않으면 원하는 결과가 되지 않을 수 있습니다.

그룹화 기준 절 뒤에 배치한 열 위치에 따라 그룹화됩니다.

예를 들어 '을(를)SELECT SALESMAN_NAME, SUM(SALES) FROM SALES GROUP BY 1그룹화 기준SALESMAN_NAME.

이를 위한 위험 요소 중 하나는 '를 실행하는 경우입니다.Select *어떤 이유로 컬럼을 사용하여 테이블을 다른 순서로 다시 작성하면 예상과는 다른 결과가 나타납니다.

언급URL : https://stackoverflow.com/questions/7392730/what-does-sql-clause-group-by-1-mean

반응형