QUERY 시 order by 관련 질문 입니다.
본문
룸 정렬을 만들어 보고 있습니다.
TABLE
A | B | C | D |
1 | ROOM2 | 1000 | |
2 | ROOM1 | 2000 | TEST |
3 | ROOM4 | 500 | |
4 | ROOM1 | 3000 |
위와 같이 되어 있다면
1 ROOM2
2 ROOM1
4 ROOM1
3 ROOM4
형식으로 정렬을 해서 출력하고 싶습니다.
order by B asc, A asc 하니 B 형식으로만 묶이던데요
위 처럼 주문 순서 대로 우선 나오면서 룸은 룸대로 묶을 수는 없는가요?
답변부탁드립니다.
답변 2
테이블 명이 ordert 라고 가정할때
SELECT
EEE.*, QQQ.rank
FROM
ordert EEE
LEFT JOIN
(
SELECT
TT.*,
@row := @row + 1 AS rank
FROM
ordert TT
JOIN
(SELECT @row := 0) RR
GROUP BY TT.B
ORDER BY TT.A
) QQQ
ON
QQQ.B = EEE.B
ORDER BY
QQQ.rank, EEE.A
select if (B = 'ROOM2',0,1) first, a.*
from tmp1 a
order by first asc, B asc, A asc
답변을 작성하시기 전에 로그인 해주세요.