개발 Q&A

제목 mysql 쿼리 질문 합니다.
글쓴이 lzao 작성시각 2014/12/26 10:10:36
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 12502   RSS
안녕하세요.

프로시저를 아직 다룰 줄 모르는 개발자입니다.

테이블 중에 구조가
index, date, name, cnt_1,cnt_2,cnt_3,cnt_4,cnt_5 
이런 컬럼을 가진 테이블이 있는데요
간략하게 테이블 설명을 드리면 index는 기본키고 auto_increment 되어있습니다. 나머지는 컬럼 그 뜻이 되구요
cnt_1~5 까지는 카운트의 개수를 가지고 있는 컬럼입니다.

여기서 제가 뽑고 데이터 내용은 정렬의 순서인데요
cnt_1~5 asc, name asc, date desc순으로 출력하고 싶은데

대충 결과 값을 예를 들자면

date                                 name      cnt
2014-12-26 10:07:00      홍길동      cnt_1(데이터값)
2014-12-26 10:07:00      홍길동      cnt_2(데이터값)
2014-12-26 10:07:00      홍길동      cnt_3(데이터값)
2014-12-26 10:07:00      홍길동      cnt_4(데이터값)
2014-12-26 10:07:00      홍길동      cnt_5(데이터값)
2014-12-26 10:06:50      홍길동      cnt_1(데이터값)
2014-12-26 10:06:50      홍길동      cnt_2(데이터값)
.
.
.

이런식의 데이터를 한 쿼리로 끝내고 싶은데 가능한가요?? 어제부터 별별짓을 하는데 안되네요..
limit도 가능해야 합니다...

도와주세요 ㅠ
 
 다음글 sql문 질문인데, and or연산 혼합해서 쓰려고하는... (3)
 이전글 [해결]데이터베이스 구조설계에 대한 질문 (6)

댓글

변종원(웅파) / 2014/12/26 10:18:28 / 추천 0
group by 가 없다면 order by 에 쭉 원하는 순서대로 기술하시면 됩니다. group by 가 있다면 구글검색으로.. order 해서 나온 결과를 한번 감싸서 group by 해야 원하는 결과를 얻을 수 있습니다
lzao / 2014/12/26 11:12:10 / 추천 0
웅파님 답변 감사드립니다.
여러개의 비슷한 컬럼을 컬럼별로 출력하려고 하는데 group by로 할 수 있나요?
한대승(불의회상) / 2014/12/26 12:39:04 / 추천 0
union 으로 묶으세요.
들국화 / 2014/12/26 13:14:38 / 추천 0
오호~ union도 방법일듯 하네요.. 간단히 짤수도 있고..
데이타 양이 많아지면 문제겠지만...

제생각에는 데이타를 세로로 푸는 쿼리가 있습니다. 풀어서 정렬하면 될듯 하네요.
implemental / 2014/12/26 13:29:07 / 추천 0
세로로 푸는 쿼리 혹시 

SELECT GROUP_CONCAT(CONCAT(t1, ',' t2)) FROM TABLE_NAME ... 

이런거 아닐까요? ^^;

얼마전에 foreach 로 나온 값들로 프로시저 콜을 하고 싶은데 (저는 , 로 구분했습니다)
데이터를 세로로 풀수 없을까하다 써봤는데 원하는 결과가 나왔던 기억이 나서 :D
kaido / 2014/12/26 14:01:10 / 추천 0
심심해서 한번 짜보았습니다만...


 
SELECT idx, date, name, cnt
  FROM(
             SELECT idx, date, name, cnt1 AS cnt FROM test
             union
             SELECT idx, date, name, cnt2 AS cnt FROM test
             union
             SELECT idx, date, name, cnt3 AS cnt FROM test
) test
GROUP BY date, cnt
ORDER BY date ASC, cnt ASC

뭔가 아닌것 같기도 하고...

 
lzao / 2014/12/26 14:12:39 / 추천 0
불의회상님, 들국화님, implementa님, kaido님 모두 답변 감사합니다 ^^
결국엔 union 써서 해결했습니다. 반복문 써서 문자열 결합으로 sql 만드는 식으로 했습니다.  감사합니다
들국화 / 2014/12/26 14:54:38 / 추천 0
lzao// union 을 쓰실거면 가능한 union all을 사용 하도록 쿼리 수정하세요.
통계성 테이블이라면 즉 레코드가 적다면 그냥 편하신데로 해도 될듯 하고요.^^