[PL / SQL] 기초 연습 14 (하)
Busi_date Exch_time Cust_piy_no Exch_type Prd_no Del_amt Org_no
20170101 93102 0312003 00001 1000 0312
20170101 103102 0312003 00002 500 0312
20170101 133102 0312003 00003 800 0312
......
20171231 143102 0320004 00004 500 0320
고객 정보 표 infot:
Org_no Org_name
0312
0320
...
0306
수요 1:
sql, 201712 .
: 、 、 、
분석: 1. Where 문 구 를 사용 하여 먼저 날짜 가 201712 월 2 인지 판단 한 다음 에 필드 내용 을 관찰 한 결과 두 장의 표 와 관련 되 고 관련 이 필요 하 며 Inner Join 으로
SELECT d.busi_date AS ,
i.org_name AS ,
SUM(CASE WHEN d.exch_type=' ' THEN d.del_amt END) AS ,
SUM(CASE WHEN d.exch_type=' ' THEN d.del_amt END) AS
FROM deli_t d
JOIN info_t i
ON d.org_no=i.org_no
WHERE SUBSTR(d.busi_date,1,6)='201712' -- d.busi_date
GROUP BY d.busi_date,i.org_name;
필요 2:
201712 、 .
: 、 、 、 、
분석:
SELECT tmp.busi_date AS ,
d1.exch_time AS ,
d1.cust_piy_no AS ,
d2.exch_time AS ,
d2.cust_piy_no AS
FROM (
SELECT d.busi_date,
MIN(exch_time) AS min_exch_time,
MAX(exch_time) AS max_exch_time
FROM deli_t d
WHERE SUBSTR(d.busi_date,1,6)='201712' -- d.busi_date
GROUP BY d.busi_date
) tmp
JOIN deli_t d1
ON d1.busi_date=tmp.busi_date
AND d1.exch_time=tmp.min_exch_time
JOIN deli_t d2
ON d2.busi_date=tmp.busi_date
AND d2.exch_time=tmp.max_exch_time
ORDER BY tmp.busi_date;
수요 3:
201712 10 : 、 、
분석: 1. Where 로 날 짜 를 판단 하 는 것 은 201712 월 2. 거래 량 10 위 권 이 고 먼저 거래 량 의 크기 에 따라 순 서 를 정 하고 분석 함수 로 한다.3. 하위 검색 을 사용 하여 10 보다 작은 모든 정 보 를 되 돌려 줍 니 다.
WITH T AS (
SELECT BUSI_DATE, PRD_NO, SUM(DEL_AMT) AS DEL_AMT
FROM DELI_T D
WHERE SUBSTR(D.BUSI_DATE, 1, 6) = '201712'
GROUP BY BUSI_DATE, PRD_NO
)
SELECT * FROM (SELECT T.*,
ROW_NUMBER() OVER(PARTITION BY BUSI_DATE, PRD_NO ORDER BY DEL_AMT DESC) AS RN
FROM T) T1
WHERE T1.RN <= 10;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 작업 은 Clob 또는 NClob 데이터 형식의 저장 프로 세 스 인 스 턴 스 를 포함 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.