programing

SQL의 하위 쿼리에 대한 TAB를 언제 추가해야 합니까?

abcjava 2023. 7. 30. 16:46
반응형

SQL의 하위 쿼리에 대한 TAB를 언제 추가해야 합니까?

SQLZOO에서 SQL을 연습하고 있으며 #5 질문에 대한 솔루션을 이해하는 데 어려움을 겪고 있습니다. https://sqlzoo.net/wiki/Window_functions

나는 다른 사용자 @crowtherl로부터 표와 질문에 대한 설명을 복사했습니다.

이 질문은 2015년과 2017년 영국 총선 결과를 포함하는 표 "ge"를 사용합니다."ge"에는 yr, firstName, lastName, 선거구, 정당 및 투표 필드가 포함됩니다.문제 #5는 학습자에게 2017년 에든버러 선거구별로 승리한 정당을 보여주도록 요청합니다.이전의 튜토리얼에서는 에든버러 선거구의 번호가 S14000021에서 S14000026까지 지정되어 있습니다.

해결책: SQLZOO의 "Window functions" 튜토리얼의 문제 #5

특히 이 코드에 대해:

  select  constituency,party from 
(
SELECT constituency,party, votes , 
rank() OVER (PARTITION BY constituency order by votes desc) rn
  FROM ge
 WHERE constituency BETWEEN 'S14000021' AND 'S14000026'
   AND yr  = 2017
ORDER BY constituency,votes DESC
) TAB WHERE rn =1

외부 쿼리에서 "TAB" 없이 위 쿼리를 실행하면 "Error: 모든 파생 테이블에는 고유한 별칭이 있어야 합니다."라는 메시지가 표시됩니다.

검색해보니 'TAB'를 추가해야 하는 이유를 설명할 수 있는 좋은 답을 찾을 수 없습니다.이것이 MariaDB에게 특별한 것입니까?아는 사람이 있나요?감사해요.

이것이 제가 생각하는 표준 SQL입니다.두 번째 SELECT(즉, 괄호 안에 있는 것)로 인해 테이블에 대한 별칭이 "TAB"라는 것을 확인할 수 있습니다.선택한 이름(예: "T1", "Extract" 또는 "Why")일 수 있으며 "TAB"일 필요는 없습니다.

언급URL : https://stackoverflow.com/questions/63625016/when-should-i-add-tab-for-subqueries-in-sql

반응형