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
'programing' 카테고리의 다른 글
C# 대소문자를 구분하지 않는 동등 연산자가 있습니까? (0) | 2023.07.30 |
---|---|
웹 페이지의 일련 번호를 기준으로 SQL을 데이터로 채우는 Python (0) | 2023.07.30 |
부트스트랩의 "col-md-4", "col-xs-1", "col-lg-2"에 있는 숫자의 의미 (0) | 2023.07.30 |
powershell에서 마침표 '.' 연산자는 무엇을 합니까? (0) | 2023.07.30 |
CGPoint 데이터를 사용한 NSLog (0) | 2023.07.30 |