【SQL (Oracle)】 GROUP BY에서 선택하지 않은 열을 집계 (MAX, MIN 등) 열과 동시에 출력하고 싶습니다.
실험 환경
Oracle Live SQL
사용할 테이블
select * from SH.sales;
CUST_ID와 TIME_ID로 그룹핑 한 후 행 수를 카운트하고 최대 값을 TIME_ID와 함께 출력하고 싶습니다.
완성도
SQL 스크립트
View 사용
cust_id가 그 날마다 구입한 제품종의 개수를 집계한다.
create view sales_cnt_view
as select CUST_ID cid, count(TIME_ID) as cnt_tid, TIME_ID tid
from SH.SALES
group by CUST_ID, TIME_ID;
select * from sales_cnt_view;
JOIN 이용
select s1.cid 顧客ID, s1.max_cnt_tid 顧客の購入商品種類の最大値, s2.tid 日付
from (select cid, MAX(cnt_tid) as max_cnt_tid
from sales_cnt_view
group by cid) s1
join sales_cnt_view s2 on s1.cid = s2.cid and s1.max_cnt_tid = s2.cnt_tid
order by s1.cid;
Reference
이 문제에 관하여(【SQL (Oracle)】 GROUP BY에서 선택하지 않은 열을 집계 (MAX, MIN 등) 열과 동시에 출력하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oradocter/items/d6169468606a2fe03f98
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
select * from SH.sales;
CUST_ID와 TIME_ID로 그룹핑 한 후 행 수를 카운트하고 최대 값을 TIME_ID와 함께 출력하고 싶습니다.
완성도
SQL 스크립트
View 사용
cust_id가 그 날마다 구입한 제품종의 개수를 집계한다.
create view sales_cnt_view
as select CUST_ID cid, count(TIME_ID) as cnt_tid, TIME_ID tid
from SH.SALES
group by CUST_ID, TIME_ID;
select * from sales_cnt_view;
JOIN 이용
select s1.cid 顧客ID, s1.max_cnt_tid 顧客の購入商品種類の最大値, s2.tid 日付
from (select cid, MAX(cnt_tid) as max_cnt_tid
from sales_cnt_view
group by cid) s1
join sales_cnt_view s2 on s1.cid = s2.cid and s1.max_cnt_tid = s2.cnt_tid
order by s1.cid;
Reference
이 문제에 관하여(【SQL (Oracle)】 GROUP BY에서 선택하지 않은 열을 집계 (MAX, MIN 등) 열과 동시에 출력하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oradocter/items/d6169468606a2fe03f98
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
View 사용
cust_id가 그 날마다 구입한 제품종의 개수를 집계한다.
create view sales_cnt_view
as select CUST_ID cid, count(TIME_ID) as cnt_tid, TIME_ID tid
from SH.SALES
group by CUST_ID, TIME_ID;
select * from sales_cnt_view;
JOIN 이용
select s1.cid 顧客ID, s1.max_cnt_tid 顧客の購入商品種類の最大値, s2.tid 日付
from (select cid, MAX(cnt_tid) as max_cnt_tid
from sales_cnt_view
group by cid) s1
join sales_cnt_view s2 on s1.cid = s2.cid and s1.max_cnt_tid = s2.cnt_tid
order by s1.cid;
Reference
이 문제에 관하여(【SQL (Oracle)】 GROUP BY에서 선택하지 않은 열을 집계 (MAX, MIN 등) 열과 동시에 출력하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oradocter/items/d6169468606a2fe03f98텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)