QUERY 시 order by 관련 질문 입니다. 채택완료

룸 정렬을 만들어 보고 있습니다.

 

MYSQL (MARIADB) 1개의 TABLE : room

 

field A field B field C field D
1 ROOM2 1000  
2 ROOM4 2000  
3 ROOM1 1000  
4 ROOM5 2000  
5 ROOM4 1000  
6 ROOM1 1000  
7 ROOM1 2000 TEST
8 ROOM4 500  
9 ROOM1 3000  

 

위와 같이 되어 있다면

 

A  B        C       D

1 ROOM2 1000

2 ROOM4 2000

5 ROOM4 1000

8 ROOM4 500

3 ROOM1 1000

6 ROOM1 1000

7 ROOM1 2000 TEST

4 ROOM5 2000

 

위처럼 한개 테이블 안에서 번호 순서대로 룸과 번호를 묶어서 출력하고 싶습니다.

형식으로 정렬을 해서 출력하고 싶습니다.

 

답변부탁드립니다.

 

답변 2개

채택된 답변
+20 포인트

지난번 질문에도 비슷한 질문을 가져오셨던것 같네요

 

https://sir.kr/qa/246227?stx=order+by&sst=wr_num&page=2&unanswered=0&s_tag=

 

조금은 다르지만 

이번엔

 

Copy
select x.* 
from room x,
    (select y.a as sort1, y.* from room y 
      group by y.b order by y.a) y
where x.b = y.b
order by y.sort1,x.a

 

와 같이하면 원하는 형태로 나옵니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

답변감사드립니다.

이렇게 해 보니 룸은 잘 정렬되는데 순번이 꼬이네요 예를들어

룸끼리는 잘 붙고요

1 ROOM1
4 ROOM1
5 ROOM1
2 ROOM3
10 ROOM3
3 ROOM4

위처럼 번호가 우선된 룸에 다른 번호 같은 룸이 붙어야 합니다.

select x.*
from roomlist x,
(select y.ono as sort1, y.* from roomlist y
group by y.o_room order by y.ono) y
where x.o_room = y.o_room and (x.o_id='myid' and x.o_check='no')
order by x.ono,y.sort1

이렇게 해 보았는데 숫자는 제대로 정렬되어서 나오는데 룸이 뒤에 입력한게 떨어져서 몇개 나와버리네요 이유를 모르겠네요... 흠...
@주민
위에 예제대로 답을드린것이구요

룸그루핑에 룸정렬이면
그냥쉽게 구현됩니다.

룸정렬은
order by x.b 로만 하셔도 됩니다.

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

A, C, D 전부 규칙성이 없네요.

단순히 ROOM만 같은 것끼리 묶으시려면 ORDER BY B만 하셔도 되지 않나요?

혹 다른 조건이 있나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

네 번호가 우선입니다. 그런데 조건이 룸 우선하면 룸 오름으로 되고 순서가 바뀌어 버려서 고민이었습니다.
우선 번호가 우선이고 번호에 따른 룸이 붙고 다음 번호 룸 정렬하고 순입니다.

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

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

로그인
🐛 버그신고