다음 문제 설명에 대해 영역 별 데이터를 표시하는 방법은 무엇입니까?

라다

다음 테이블 구조가 있습니다.

Area    Section    Carrying_Engine

A1        S1           Petrol
A2        S1           Petrol
A3        S1           Diesel
A4        S1           Petrol
A5        S2           Diesel
A6        S2           Petrol

문제 설명은 섹션 S1 및 S2 아래에서 운반 된 엔진이 휘발유와 디젤, 출력이 얼마나되는지를 표시해야한다는 것입니다.

Section   From_Area   To_Area   Carrying_Engine

S1          A1          A3         Petrol
S1          A3          A4         Diesel
S1          A4          A5         Petrol
S2          A5          A6         Diesel 

추신 : 캐리 잉 엔진 또는 섹션에서 전환이있을 때마다 이전 섹션 또는 캐리 잉 엔진 계정을 고려하여 캐리 잉 비용이 추가됩니다. 예를 들어 3 번째 행에 전환이 있으므로 여기에서 A2에서 A3으로 이동합니다. , 우리는 휘발유 엔진을 사용하고 A3 지점에 디젤 엔진을 부착하여 섹션 S1에서 휘발유 엔진을 A1 구역에서 A3로 옮겼 습니다. 마찬가지로 4 ~ 5 열에서는 가솔린 엔진을 사용하여 섹션 S1에서 S2로 이동하고 A5 지점에 디젤 엔진을 부착했지만 여기에서는 S1 섹션 계정에만 운송 비용을 추가하므로 영역 A4에서 A5까지 가솔린 엔진을 사용했습니다. 섹션 S1에서.

이 문제를 해결하는 논리를 얻을 수 없습니다.

뽀빠이

분석 기능 을 활용할 수 있지만 오라클은 레코드의 자동 순서를 제공하지 않으므로 열의 순서를 식별하기 위해 일부 열이 있어야합니다.

내가 사용하고 DATETIME다음과 같은 솔루션의 열 순서를 식별하기 위해 열을 :

SQL> WITH YOUR_TABLE (Area,    Section,    Carrying_Engine, DATETIME) AS
  2  (SELECT 'A1',        'S1',           'Petrol', SYSDATE - 6 FROM DUAL UNION ALL
  3  SELECT 'A2',        'S1',           'Petrol', SYSDATE - 5 FROM DUAL UNION ALL
  4  SELECT 'A3',        'S1',           'Diesel', SYSDATE - 4 FROM DUAL UNION ALL
  5  SELECT 'A4',        'S1',           'Petrol', SYSDATE - 3 FROM DUAL UNION ALL
  6  SELECT 'A5',        'S2',           'Diesel', SYSDATE - 2 FROM DUAL UNION ALL
  7  SELECT 'A6',        'S2',           'Petrol', SYSDATE - 1 FROM DUAL)
  8  SELECT * -- your query starts from here
  9  FROM
 10      (
 11          SELECT
 12              SECTION,
 13              AREA   AS FROM_AREA,
 14              LEAD(AREA) OVER(ORDER BY DATETIME ) AS TO_AREA,
 15              CARRYING_ENGINE
 16          FROM
 17              (
 18                  SELECT
 19                      T.*,
 20                      LAG(CARRYING_ENGINE) OVER(ORDER BY DATETIME) AS LEAD_CARRYING_ENGINE
 21                  FROM YOUR_TABLE T
 22              )
 23          WHERE LEAD_CARRYING_ENGINE <> CARRYING_ENGINE
 24              OR LEAD_CARRYING_ENGINE IS NULL
 25      )
 26  WHERE TO_AREA IS NOT NULL;

SECTION | FROM_AREA | TO_AREA | CARRYING_ENGINE
------- | --------- | ------- | ---------------
S1      | A1        | A3      | Petrol
S1      | A3        | A4      | Diesel
S1      | A4        | A5      | Petrol
S2      | A5        | A6      | Diesel

건배!!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다음 시나리오에 대한 그룹 별 결과를 표시하는 방법은 무엇입니까?

분류에서Dev

문자열에서 명사를 식별하고 대문자로 표시하는 방법은 무엇입니까?

분류에서Dev

선택 해제 된 확인란의 비활성화 된 텍스트 영역에 대한 데이터를 보내지 않는 방법은 무엇입니까?

분류에서Dev

제출 후 텍스트 영역에 데이터를 보관하는 방법은 무엇입니까?

분류에서Dev

제한된 영역 만 다른 영역에는 색이 없도록 배경 영역을 제어하는 방법은 무엇입니까?

분류에서Dev

개별 프로세스에 대한 블록 캐시를 해제하는 방법은 무엇입니까?

분류에서Dev

ASP.NET : AOP / 크로스 컷 문제에 대해 데이터를 표시하는 방법은 무엇입니까?

분류에서Dev

sudo 명령에 대해서도 전역 변수를 표시하는 방법은 무엇입니까?

분류에서Dev

R .CSV 데이터에서 헤더별로 데이터를 설명하는 방법은 무엇입니까?

분류에서Dev

React 체크 박스와 동시에 데이터를 표시하는 대신 다른 데이터를 표시하는 방법은 무엇입니까?

분류에서Dev

쿠키 변경은 다음 요청까지 영향을주지 않습니다.이 문제를 해결하는 방법은 무엇입니까?

분류에서Dev

PersistentVolume을 한 영역에서 다른 영역으로 이동하는 방법은 무엇입니까?

분류에서Dev

데이터베이스를 설계하는 동안 다 대다 관계를 차별화하는 방법은 무엇입니까?

분류에서Dev

Colab에 데이터 세트를 다운로드하는 방법은 무엇입니까? 문제가 발생하여 "401-Unauthorized"라고 표시됩니까?

분류에서Dev

Colab에 데이터 세트를 다운로드하는 방법은 무엇입니까? 문제가 발생하여 "401-Unauthorized"라고 표시됩니까?

분류에서Dev

javascript 또는 angular js를 사용하여 목록의 각 항목에 대해 다른 도구 설명을 표시하는 방법은 무엇입니까?

분류에서Dev

초기 데이터에 대해 정렬 화살표를 표시하는 방법은 무엇입니까?

분류에서Dev

mix.exs에 정의 된 별칭에 대한 설명을 제공하는 방법은 무엇입니까?

분류에서Dev

사용자가 텍스트 영역의 지정된 단어에서 문자를 삭제할 때 버튼을 다시 숨기는 방법은 무엇입니까?

분류에서Dev

명령 프롬프트에서 분음 부호 문제를 해결하는 방법은 무엇입니까?

분류에서Dev

텍스트 영역 양식에서 데이터를 게시하는 방법은 무엇입니까?

분류에서Dev

무작위로 생성 된 문자열 (배열에서)을 다른 영역에 다시 표시하는 방법은 무엇입니까?

분류에서Dev

jQuery를 통해 행 제거, 테이블이 비어있는 경우 "데이터 없음"메시지를 표시하는 방법은 무엇입니까?

분류에서Dev

특정 영역에서 이미지를 다시 칠하는 방법은 무엇입니까?

분류에서Dev

파일의 '문자열'에서 표시되는 데이터를 제거하는 방법은 무엇입니까?

분류에서Dev

indexeddb에 대한 jaydata의 데이터를 날짜별로 필터링하는 방법은 무엇입니까?

분류에서Dev

표시된 최대보다 높은 해상도를 설정하는 방법은 무엇입니까?

분류에서Dev

다중 모니터 설정에서 winform이 표시되는 모니터를 식별하는 방법은 무엇입니까?

분류에서Dev

정자를 설치하는 데 문제가 있습니다. 해결 방법은 무엇입니까?

Related 관련 기사

  1. 1

    다음 시나리오에 대한 그룹 별 결과를 표시하는 방법은 무엇입니까?

  2. 2

    문자열에서 명사를 식별하고 대문자로 표시하는 방법은 무엇입니까?

  3. 3

    선택 해제 된 확인란의 비활성화 된 텍스트 영역에 대한 데이터를 보내지 않는 방법은 무엇입니까?

  4. 4

    제출 후 텍스트 영역에 데이터를 보관하는 방법은 무엇입니까?

  5. 5

    제한된 영역 만 다른 영역에는 색이 없도록 배경 영역을 제어하는 방법은 무엇입니까?

  6. 6

    개별 프로세스에 대한 블록 캐시를 해제하는 방법은 무엇입니까?

  7. 7

    ASP.NET : AOP / 크로스 컷 문제에 대해 데이터를 표시하는 방법은 무엇입니까?

  8. 8

    sudo 명령에 대해서도 전역 변수를 표시하는 방법은 무엇입니까?

  9. 9

    R .CSV 데이터에서 헤더별로 데이터를 설명하는 방법은 무엇입니까?

  10. 10

    React 체크 박스와 동시에 데이터를 표시하는 대신 다른 데이터를 표시하는 방법은 무엇입니까?

  11. 11

    쿠키 변경은 다음 요청까지 영향을주지 않습니다.이 문제를 해결하는 방법은 무엇입니까?

  12. 12

    PersistentVolume을 한 영역에서 다른 영역으로 이동하는 방법은 무엇입니까?

  13. 13

    데이터베이스를 설계하는 동안 다 대다 관계를 차별화하는 방법은 무엇입니까?

  14. 14

    Colab에 데이터 세트를 다운로드하는 방법은 무엇입니까? 문제가 발생하여 "401-Unauthorized"라고 표시됩니까?

  15. 15

    Colab에 데이터 세트를 다운로드하는 방법은 무엇입니까? 문제가 발생하여 "401-Unauthorized"라고 표시됩니까?

  16. 16

    javascript 또는 angular js를 사용하여 목록의 각 항목에 대해 다른 도구 설명을 표시하는 방법은 무엇입니까?

  17. 17

    초기 데이터에 대해 정렬 화살표를 표시하는 방법은 무엇입니까?

  18. 18

    mix.exs에 정의 된 별칭에 대한 설명을 제공하는 방법은 무엇입니까?

  19. 19

    사용자가 텍스트 영역의 지정된 단어에서 문자를 삭제할 때 버튼을 다시 숨기는 방법은 무엇입니까?

  20. 20

    명령 프롬프트에서 분음 부호 문제를 해결하는 방법은 무엇입니까?

  21. 21

    텍스트 영역 양식에서 데이터를 게시하는 방법은 무엇입니까?

  22. 22

    무작위로 생성 된 문자열 (배열에서)을 다른 영역에 다시 표시하는 방법은 무엇입니까?

  23. 23

    jQuery를 통해 행 제거, 테이블이 비어있는 경우 "데이터 없음"메시지를 표시하는 방법은 무엇입니까?

  24. 24

    특정 영역에서 이미지를 다시 칠하는 방법은 무엇입니까?

  25. 25

    파일의 '문자열'에서 표시되는 데이터를 제거하는 방법은 무엇입니까?

  26. 26

    indexeddb에 대한 jaydata의 데이터를 날짜별로 필터링하는 방법은 무엇입니까?

  27. 27

    표시된 최대보다 높은 해상도를 설정하는 방법은 무엇입니까?

  28. 28

    다중 모니터 설정에서 winform이 표시되는 모니터를 식별하는 방법은 무엇입니까?

  29. 29

    정자를 설치하는 데 문제가 있습니다. 해결 방법은 무엇입니까?

뜨겁다태그

보관