서브 쿼리의 상관 관계 캐리어 별 시간순 순번SQL 내가 it.Below 뒤에 논리는 운동과 코드 이해할 수 없었다 아직 며칠 동안 Codecademy에서에서이 운동에 노력하고있다
이SELECT carrier, id,
(SELECT COUNT(*)
FROM flights f
WHERE f.id < flights.id
AND f.carrier=flights.carrier) + 1 AS flight_sequence_number
FROM flights;
내가 f
테이블 flights
의 가상 형태라고 이해할 수있다 : 각 추가 비행과 flight_id 증가를 가정 예를 들어 , 우리는 캐리어에 의해 비행, 비행 ID 및 일련 번호를 보려면 다음 쿼리를 사용할 수 있습니다 ,하지만 f.id < flights.id
은 무엇을합니까? 그것은
는 MQ 14,979
와 MQ 17107 비교,는 MQ 2205와 MQ 17107 비교, MQ 7869와 MQ 17107 비교 SQL은
같은 flights
의 각 행에 f
의 각 행을 비교하는 것을 의미 하는가
......
는 MQ 2205와 MQ 7869을 비교
는 MQ에게 7869 위스콘신 비교 일 MQ 14,979
......
옆에,이 COUNT(*)
정말 어떻게 계산합니까? 그리고 왜 +1
? 어떤 도움을 이해할 수있을 것이다 query result
:
이
은 결과 이미지입니다. 감사.
현재 ID 앞에 비행 횟수를 세고 1을 더하십시오. – jarlh
좋은 프로그래밍 방법에는 두 가지 테이블 별칭이 있습니다. 예 : 여기서 f1과 f2. – jarlh
[modern SQL] (http://modern-sql.com/slides)을 사용하면 간단한 창 함수를 사용하면 훨씬 쉽게 처리 할 수 있습니다. 'row_number (over) (id를 통한 파티션 캐리어 주문)'- 부질의. –