select user_id, product_id
from online_sale
group by user_id, product_id
having count(product_id) >= 2
order by user_id, product_id desc
똑같은 user_id가 똑같은 product_id를 재구매 한 데이터를 찾아야해서 조건을 어떻게 줘야할 지 고민했다.
group by user_id, product_id 하면 파이썬의 튜플 개념으로 user_id와 product_id의 쌍으로 그룹화를 한다는 것을 배웠다,
나의 풀이)
select distinct b.user_id, nickname, concat(city,' ',street_address1,' ',street_address2) as '전체주소', concat(substr(tlno,1,3), '-', substr(tlno,4,4), '-', substr(tlno,8,4)) as '전화번호'
from used_goods_board a join used_goods_user b on a.writer_id = b.user_id
where a.writer_id in (select a.writer_id
from used_goods_board a join used_goods_user b on a.writer_id = b.user_id
group by a.writer_id
having count(writer_id) >= 3)
order by b.user_id desc
where 절에 서브쿼리를 주어 글을 세개 이상 쓴 조건을 만족하는 writer_id를 데이터 베이스에서 조회하였다.
'TIL > SQL' 카테고리의 다른 글
DBMS (0) | 2024.07.16 |
---|---|
TIL (7/16) <join> (0) | 2024.07.16 |
TIL (7/12) <group by, having, 서브쿼리를 사용하는 이유> (2) | 2024.07.12 |
TIL (7/11) <Round(), div> (0) | 2024.07.11 |
TIL #3 < join(SQL), NULL처리, Pivot table, Window function> (0) | 2024.06.28 |