질문좀 드릴께요..GROUP BY 를 사용할때 소트가... 정보
질문좀 드릴께요..GROUP BY 를 사용할때 소트가...본문
여기서 질문을 올려도 된다구 해서 부탁좀 드립니다...
select * from 테이블 where 필드1 = 1 GROUP BY 필드2 order by 날짜필드 DESC limit $start, $view_article
위처럼 쿼리를 줬습니다.
필드2에는 중복되는 값이 여럿이구요..
그 중복을 제거할때 날짜필드를 기준으로 가장 최근값을 뿌려주려고 하는데 가장오래전에 입력했던 값이 그대로 있네요.. 잘못된 구문인가요...
데이터가 계속 축척 되는데
날짜필드 필드1 필드2 필드3 필드4
------------------------------------------------------------
09-02-10 1 30 11
09-02-10 2 30 11
09-02-11 1 10 12
09-02-12 1 30 13
09-02-12 1 10 14
이런식으로 데이터가 있으면
09-02-12 1 10 14
09-02-11 1 30 13
이렇게 출력 하고 싶은건데
나름 찾아보니
http://blog.naver.com/dark0111?Redirect=Log&logNo=30020022679
여기서 처럼 GROUP BY를 먼저 처리해서 그렇다는데...제가 잘못이해한건가요?
부탁좀 드리겠습니다..
select * from 테이블 where 필드1 = 1 GROUP BY 필드2 order by 날짜필드 DESC limit $start, $view_article
위처럼 쿼리를 줬습니다.
필드2에는 중복되는 값이 여럿이구요..
그 중복을 제거할때 날짜필드를 기준으로 가장 최근값을 뿌려주려고 하는데 가장오래전에 입력했던 값이 그대로 있네요.. 잘못된 구문인가요...
데이터가 계속 축척 되는데
날짜필드 필드1 필드2 필드3 필드4
------------------------------------------------------------
09-02-10 1 30 11
09-02-10 2 30 11
09-02-11 1 10 12
09-02-12 1 30 13
09-02-12 1 10 14
이런식으로 데이터가 있으면
09-02-12 1 10 14
09-02-11 1 30 13
이렇게 출력 하고 싶은건데
나름 찾아보니
http://blog.naver.com/dark0111?Redirect=Log&logNo=30020022679
여기서 처럼 GROUP BY를 먼저 처리해서 그렇다는데...제가 잘못이해한건가요?
부탁좀 드리겠습니다..
추천
1
1
댓글 8개

select * from 테이블 where 필드1='1' group by 날짜필드 order by 날짜필드 desc;
원하는 닶이 맞는지 모르겠네요
날짜를 구룹으로 묶으면 될것 같네요
원하는 닶이 맞는지 모르겠네요
날짜를 구룹으로 묶으면 될것 같네요
답변 감사합니다.. 그런데 실제 데이터에는 날짜는 2009-02-25 00:25:59
이렇게 되어 있어서 소용이 없네요...
결국 필드2를 기준으로 가장 최근값이 뿌려져야 하는데 답답하네요..ㅡ.ㅡ;
이렇게 되어 있어서 소용이 없네요...
결국 필드2를 기준으로 가장 최근값이 뿌려져야 하는데 답답하네요..ㅡ.ㅡ;
order by 날짜필드 desc, 필드2 desc 하면 될듯 하네요
날짜필드 정렬 후 필드 2 정렬...
맞나...@.@
날짜필드 정렬 후 필드 2 정렬...
맞나...@.@
select distinct * from 테이블 where 필드1=1 group by 날짜필드 order by 날짜필드 desc;
혹시 이건 어떤지요.
혹시 이건 어떤지요.

select SUBSTRING(날짜필드,1,10) as ymd, 필드1, 필드2, 필드3
from 테이블
where 필드1 = 1
GROUP BY ymd
order by SUBSTRING(날짜필드,1,10) DESC
limit $start, $view_article
이런 코드로 안될까요?
from 테이블
where 필드1 = 1
GROUP BY ymd
order by SUBSTRING(날짜필드,1,10) DESC
limit $start, $view_article
이런 코드로 안될까요?
행복지키미// distinct 문은 레코드 값이 유일한것은 다 뽑아내니까 실제 데이터에는 필드4.... 부터는 값들이 틀리거든요.. 그래서 그대로 다 출력됩니다.. 한 필드만 그렇게 뽑는건 distinct문으로 가능하더라구요.. 아무튼 신경써 주셔서 감사합니다..
관리자님 말씀대로 해도 제가 원하는 값이 안나오네요.ㅡ.ㅡ;
다른 필드에 넘버값이 있어서 그 필드를 max()를 사용해도 그룹으로 먼저 묶은다음에 구문들이 수행되는거 같아요...
시세표를 출력하려는 것인데요..
여러종목의 시세들이 변화하다가 오늘 시점에서 최근값들을 뽑아 내고 싶은겁니다..
1 이라는 시세는 그동안 여러번 변경이 됐지만
2라는 시세는 한달전에 한번 변경 될수있거든요..
그럼 현재 시세를 뽑을때는
1이라는 시세의 가장 최근값..
2 라는 시세의 가장 최근값이 뽑혀야 하는데..
표에는 1,2 이런것들이 한번만 나와야 하니까 그룹으로 묶어서 소트를 시키면 될줄 알았는데 그게 안돼네요..ㅡ.ㅡ
혹시 이런경우 해결법 아시면 부탁좀 드릴께요..ㅜ.ㅜ
관리자님 말씀대로 해도 제가 원하는 값이 안나오네요.ㅡ.ㅡ;
다른 필드에 넘버값이 있어서 그 필드를 max()를 사용해도 그룹으로 먼저 묶은다음에 구문들이 수행되는거 같아요...
시세표를 출력하려는 것인데요..
여러종목의 시세들이 변화하다가 오늘 시점에서 최근값들을 뽑아 내고 싶은겁니다..
1 이라는 시세는 그동안 여러번 변경이 됐지만
2라는 시세는 한달전에 한번 변경 될수있거든요..
그럼 현재 시세를 뽑을때는
1이라는 시세의 가장 최근값..
2 라는 시세의 가장 최근값이 뽑혀야 하는데..
표에는 1,2 이런것들이 한번만 나와야 하니까 그룹으로 묶어서 소트를 시키면 될줄 알았는데 그게 안돼네요..ㅡ.ㅡ
혹시 이런경우 해결법 아시면 부탁좀 드릴께요..ㅜ.ㅜ
$sql = mysql_query(" select *, max(fld3) mex from tt where fld1 = 1 group by date
order by date desc ");
이렇게 해서 그냥 mex 값을 쓰면 않될가요?
order by date desc ");
이렇게 해서 그냥 mex 값을 쓰면 않될가요?
아..네.. 저 예는 그냥 예일뿐이고 실제 중요한건 필드2 인것중 가장 최근값만... 뿌려줘야 되거든요.. 쉽게 해결안되는 문제에 계속 관심 가져 주셔서 감사합니다..
제가 겪는 문제가..
http://blog.naver.com/dark0111?Redirect=Log&logNo=30020022679
요기에 설명된거 같아요...
그룹으로 묶으면서도 최근값을 뽑아 올수 있는걸 원하거든요.ㅡ.ㅡ;
제가 겪는 문제가..
http://blog.naver.com/dark0111?Redirect=Log&logNo=30020022679
요기에 설명된거 같아요...
그룹으로 묶으면서도 최근값을 뽑아 올수 있는걸 원하거든요.ㅡ.ㅡ;