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 포인트
7년 전
지난번 질문에도 비슷한 질문을 가져오셨던것 같네요
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개
7년 전
7년 전
@주민
위에 예제대로 답을드린것이구요
룸그루핑에 룸정렬이면
그냥쉽게 구현됩니다.
룸정렬은
order by x.b 로만 하셔도 됩니다.
위에 예제대로 답을드린것이구요
룸그루핑에 룸정렬이면
그냥쉽게 구현됩니다.
룸정렬은
order by x.b 로만 하셔도 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
7년 전
A, C, D 전부 규칙성이 없네요.
단순히 ROOM만 같은 것끼리 묶으시려면 ORDER BY B만 하셔도 되지 않나요?
혹 다른 조건이 있나요?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
7년 전
네 번호가 우선입니다. 그런데 조건이 룸 우선하면 룸 오름으로 되고 순서가 바뀌어 버려서 고민이었습니다.
우선 번호가 우선이고 번호에 따른 룸이 붙고 다음 번호 룸 정렬하고 순입니다.
우선 번호가 우선이고 번호에 따른 룸이 붙고 다음 번호 룸 정렬하고 순입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이렇게 해 보니 룸은 잘 정렬되는데 순번이 꼬이네요 예를들어
룸끼리는 잘 붙고요
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
이렇게 해 보았는데 숫자는 제대로 정렬되어서 나오는데 룸이 뒤에 입력한게 떨어져서 몇개 나와버리네요 이유를 모르겠네요... 흠...