sql group by 질문입니다. 채택완료
선구자
8년 전
조회 1,861

</p>
<p> select
purchase.order_no,
case
when count(request.order_no) = 1
then max(prod_name)
else max(prod_name) || ' 외 ' || count(request.order_no) -1 || ' 건'
end as title
from purchase
join pay on purchase.order_no = pqy.order_no
left outer join request on purchase.order_no = request.order_no
left outer join prod on request.prod_no = prod.prod_no
group by request.order_no, prod.prod_name </p>
<p>
제가 한 결과는 이렇게 나오네요
| 1001 |
| 1001 |
| 1001 |
| 1002 |
| 1003 |
| 1004 |
| 1005 |
| 1006 |
이것 때문에 집에 못가고 있습니다.
도움 부탁드립니다.
1001
1002
1003
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
8년 전
</p>
<p>select a.order_no, concat(concat(concat(prod_name," 외"),count(prod_name))," 건") cnt</p>
<p> from purchase a, request c, prod d
where a.order_no = c.order_no
and c.prod_no = d.prod_no
group by order_no
;
</p>
<p>
중간에 pay는 혼란을 초래하는 구조라서,
추출내용상 pay의 정보가 필요없어서 주석처리했습니다.

로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
선구자
8년 전
댓글을 작성하려면 로그인이 필요합니다.
8년 전
원하시는게 조건이 뭔지 모호하네요
잘못 기록한 SQL으로는
원하시는게 뭘까요?
단순히
select distinct order_no는 아닌거 같은데
원하시는걸 글로 적어보시는게 어떨까요?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
선구자
8년 전
원하는 결과는
주문번호가
1001
1002
1003
이렇게 나오는 것인데
현재 쿼리 결과는
주문번호 1개에 상품이 여러개 있으니까 아래처럼 나옵니다.
1001 사과
1001 복숭아
1001 바나나
제가 원하는 결과는 아래와 같습니다.
1001 사과 외 2건
1004 복수아
1005 과일
죄송합니다..
주문번호가
1001
1002
1003
이렇게 나오는 것인데
현재 쿼리 결과는
주문번호 1개에 상품이 여러개 있으니까 아래처럼 나옵니다.
1001 사과
1001 복숭아
1001 바나나
제가 원하는 결과는 아래와 같습니다.
1001 사과 외 2건
1004 복수아
1005 과일
죄송합니다..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
일단 퇴근하고 집에서 실행해 보겠습니다.