【SQL (Oracle)】 GROUP BY에서 선택하지 않은 열을 집계 (MAX, MIN 등) 열과 동시에 출력하고 싶습니다.

4059 단어 오라클SQLGroupBy

실험 환경



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;


좋은 웹페이지 즐겨찾기