미채택 완료

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개

Copy
select if (B = 'ROOM2',0,1) first, a.*

from tmp1 a
order by first asc, B asc, A asc

테이블 명이 ordert 라고 가정할때

Copy
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

답변을 작성하려면 로그인이 필요합니다.