오라클
1)
""이 책을 본.. 다른 사람이 가장 많이 본 다른 책...상위 베스트 10.""
select top 10 책
from 구독테이블
where 본사람 in ( select 본사람
from 구독테이블
where 책 = '이책' )
group by 책
order by count(*) desc
2)
"" 어떤 상품이 있는데..
이 상품을 산 구매자들이 구매한 다른 상품들 중 가장 구매가 많았던 상위 10가지를 추출하고 싶거던요..""
select top 10 상품
from 구매테이블
where 구매자 in ( select 구매자
from 구매테이블
where 상품 = '어떤상품' )
group by 상품
order by count(*) desc
1,2번의 방식은 똑 같습니다......
출처 www.sqler.com/board_SQLQA/379855
mysql 식
select 상품PK, COUNT(상품PK) AS cnt
from 결제 상품 정보
where 구매자pk in ( select 구매자pk
from 결제 상품 정보
where 상품PK = '해당 상품PK' ) AND 상품PK != '해당 상품PK'
group by 상품PK
HAVING count(*) > 1
order by cnt DESC
LIMIT 10
그누보드인 경우
sql = " select it_id, count(*) as cnt from {$g5['g5_shop_cart_table']} where mb_id in ( select mb_id from {$g5['g5_shop_cart_table']} where it_id = '{$it['it_id']}' ) group by it_id HAVING count(*) > 1 order by count(*) desc LIMIT 10";