database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41805 게시물 읽기
No. 41805
두행의 차이값 계산하는 쿼리
작성자
궁금
작성일
2020-07-21 08:56
조회수
2,324

d1의 값을 비교하여 제일 최근날짜 두 날짜에 대하여
그 행에 있는 상수의 차이값을 구하고자합니다
어떻게 하면 될까요?

--원하는 결과값--
 d2   d3
aaaa 100
bbbb 50
--테이블 형식--
with t as(
select '20200721' as d1, 'aaaa' as d2, 200 as d3
from dual union all
select '20200720' as d1, 'aaaa' as d2, 100 as d3
from dual union all
select '20200719' as d1, 'aaaa' as d2, 100 as d3
from dual union all
select '20200721' as d1, 'bbbb' as d2, 150 as d3
from dual union all
select '20200719' as d1, 'bbbb' as d2, 150 as d3
from dual union all
select '20200720' as d1, 'bbbb' as d2, 100 as d3
from dual )
select * from t ;

 

고맙습니다

 

이 글에 대한 댓글이 총 2건 있습니다.

최근 3일간의 최대값과 최소값의 차이를 구하면 될까요?

select d2, max(d3)-min(d3)
from (select d2, d3, row_number() over (partition by d2 order by d1 ) rn from t) t1
where rn <= 3
group by d2 

 

정상규(pajama)님이 2020-07-21 09:27에 작성한 댓글입니다.

SELECT D2, NVL(MIN(DECODE(RN,1,D3)),0) - NVL(MIN(DECODE(RN,2,D3)),0) GAP

  FROM

        (SELECT ROW_NUMBER () OVER (PARTITION BY D2 ORDER BY D1 DESC) RN

             , D1, D2, D3

          FROM t)

 WHERE RN <= 2

GROUP BY D2

가던길님이 2020-07-24 16:39에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41808오라클 인라인뷰 성능 및 where 1= decode() 사용에 관한 질문입니다. [1]
보통남
2020-07-28
2048
41807오라클에서 마스킹 처리 확인 부탁드립니다. [2]
김세익
2020-07-24
7124
41806ORA-01465 : 16진수의 지정이 부적합합니다 [3]
어거스트
2020-07-21
3678
41805두행의 차이값 계산하는 쿼리 [2]
궁금
2020-07-21
2324
41804컬럼별 데이터 조합? [2]
궁금이
2020-06-19
2312
41803게시판을 짜고 primary key가 걸려있는 [2]
이대연
2020-06-05
2132
41802테이블에 전문데이타와 전문 레이아웃을 관리
정희철
2020-06-05
1965
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다