728x90

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이)

SELECT distinct a.user_id, a.product_id 
from online_sale as a join online_sale as b
on a.user_id=b.user_id and a.product_id=b.product_id 
where a.sales_date != b.sales_date
order by user_id, product_id desc;

self join으로 해보았다! self join은 처음 활용해봤는데 오묘하다...

 

SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) > 1
ORDER BY USER_ID, PRODUCT_ID DESC;

또한, group by를 사용해서 풀 수도 있더라..

 

 

SELECT USER_ID, PRODUCT_ID,count(*)
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID;

이 sql문을 작성해보면, 다음과 같은 결과가 나온다.

 

USER_ID PRODUCT_ID count(*)
2 21 1
2 26 1
2 30 1
4 27 1
5 12 1
7 1 1
7 5 1
12 7 1
13 27 1
14 18 1
15 12 2
19 26 1
20 24 1
22 8 1
23 7 1
23 26 1
24 2 1
27 3 1
29 15 1
29 26 1
34 6 1
35 8 1
37 1 1
41 1 1
42 9 1
42 19 1
42 30 1
43 6 1
45 15 1
46 1 1
50 24 1
52 15 1
53 12 1
54 11 1
55 30 1
56 28 1
57 11 1
57 25 1
58 11 1
58 26 1
59 14 1
60 15 1
61 20 1
62 29 1
65 19 1
66 4 1
66 21 1
68 1 1
68 6 1
68 15 1
70 27 1
72 12 1
73 8 1
73 21 1
73 25 1
74 9 1
78 4 1
78 6 1
78 19 1
81 20 1
84 8 1
87 24 1
88 28 1
90 24 1
91 21 1
92 26 1
93 3 1
98 3 1
99 27 1
101 9 1
102 18 1
103 29 1
108 27 1
109 5 1
109 13 1
110 9 1
111 30 1
113 15 1
114 1 1
114 12 1
117 7 1
117 12 1
117 22 1
118 1 1
119 12 2
120 4 1
120 29 1
121 14 1
123 14 1
123 25 1
126 9 1
126 21 1
127 29 1
131 19 1
133 17 1
134 18 1
134 22 1
134 26 1
138 4 1
139 9 1
140 4 1
143 15 1
145 8 1
149 8 1
151 26 1
152 7 1
154 7 1
154 29 1
157 30 1
160 23 1
162 30 1
163 6 1
170 24 1
170 25 1
177 9 1
180 30 1
183 14 1
184 24 1
189 25 1
190 25 1

 

 

처음에는 어떻게 이렇게 가능한거지.. 이해가 안 갔는데, 다음 블로그르 참고하면 이해하기가 좀 쉬울것이다!

 

 

https://codingdog.tistory.com/entry/sql-group-by-2%EA%B0%9C-%EC%9D%B4%EC%83%81-%EB%82%98%EB%88%8C-%EA%B8%B0%EC%A4%80%EC%9D%84-select-%EC%A0%88%EC%97%90%EB%8F%84-%EB%98%91%EA%B0%99%EC%9D%B4-%EC%A0%81%EC%96%B4%EC%A3%BC%EB%A9%B4-%EB%90%9C%EB%8B%A4

 

sql group by 2개 이상 : 나눌 기준을 select 절에도 똑같이 적어주면 된다.

요새 롯데 자이언츠의 상승세가 무섭습니다. 이번 년도에 가을야구 갈 거 같습니다. 초반부터 야구 이야기를 해서 죄송합니다. group by에서 2개 이상의 속성으로 그룹화를 하고 싶을 때 어떻게 해

codingdog.tistory.com

 

728x90

+ Recent posts