1
어려운 쿼리를 작성해야하는데 도움이 필요합니다. 이러한 열 이름은 가짜 : Oracle SQL의 쿼리 개선
나는 다음과 같은 테이블이 (MyTable
)
C1 int,
C2 int,
C3 int,
.
.
C79 int
C80 int
는가 있습니다. 실제 열 이름은 비슷하지 않습니다. 각 열의 이름은 다른 열과 유사하지 않습니다.
나는 다음과 같은 쿼리 (queryA
)가 :
select cnt/(select count(*) from MyTable)
from (
select c1, c2, count(*) over(partition by c1, c2) cnt
from MyTable);
: C (I) - C (I + 1), C (I + 1) - C (i + 2) ... 위 쿼리에서 나는 c1과 c2를 실행했습니다.
또한 위의 쿼리와 같은 두 가지 유사한 쿼리가 있습니다. 출력 테이블에서 각 순차 열은 3 개의 쿼리로부터 3 개의 계산을 갖습니다.
(float
있어야 열 모든 유형의) 그 같이하기로 출력 테이블 : 내가 충분히 분명 희망
c12A - calculation of query A for c1-c2
c12B - calculation of query B for c1-c2
c12C - calculation of query C for c1-c2
c23A - calculation of query A for c2-c3
c23B - calculation of query B for c2-c3
c23C - calculation of query C for c2-c3
.
.
.
c7980A - calculation of query A for c79-c80
c7980B - calculation of query B for c79-c80
c7980C - calculation of query C for c79-c80
. 어떤 추천을하는 방법?
나는 컬럼의 "순서를"정의lead(column_name) OVER(ORDER BY column_id)
가 대단히 감사합니다 :cols.column_id
을 사용했다. 나는이 쿼리를 실행하려고, 다음과 같은 오류가 발생했습니다 : "RW": 유효하지 않은 식별자 (11 행). 이 쿼리는 너무 복잡해서이 문제를 해결할 수 없었습니다. – Omri@Omri 죄송합니다, 작은 실수가있었습니다. 내 대답을 업데이트했습니다 – Multisync
고마워요. 이제 쿼리가 오류를 반환하지 않지만 출력이 손상된 것 같습니다. 두 개의 열이 있습니다. 첫 번째 열의 이름은 1에서 81까지의 숫자를 포함하는 RW이고 마지막 열의 값은 10000으로 점프됩니다. 두 번째 열은 쿼리와 비슷한 값을가집니다. 예 : "union allselect22 rw, 파티션을 기준으로 개수 (*)"... ". 나는 여러 번 검사했고 나의 질문은 당신과 똑같습니다. 어떤 생각? - Omri 6 분 전 – Omri