데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요. 방금 가입한 새내기입니다.
sql을 하나 작성해야하는데 어려움을 겪고 있어 도움을 청하고자 합니다.
상품조회 테이블에 상품id와 조회한 id 두개가 있습니다.
각 상품별로 해당상품을 조회한 사람들이 가장 많이 조회한 상품 10개를 출력하고 싶습니다.
예를 들어 핸드폰이란 상품을 본 사람이 10명이라면 10명이 조회한 모든 상품중에 가장 많이 조회한 10개를 출력하는 겁니다.
현재 구현은 서브 쿼리를 통해 exists 로 조회조건에 상품id를 주어 구현했는데 단점은 단건 처리만 가능하며 전건을 처리하려고 프로시져에서 loop를 사용하였더니 처리시간이 무지막지하게 늘어나 문제가 있습니다.
파라미터를 안주고 일괄로 가능한지 여쭙고 싶습니다.
감사합니다
Comment 1
-
항해자™
2016.10.15 10:15
cross apply 혹은 ourer apply 를 활용하면 쉽게 구할 수 있습니다,,,