데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요 검색으로 찾아보다 어떤 식으로 생각해야하는지 방향을 잘 못잡겠어서 이렇게 질문 올립니다.
너무 초보적인 질문이 아닌가 싶네요
테이블은
장치idx data 날짜(datetime) 과 같은 형태로 구분되어있고
데이터는 하루에 144번 들어옵니다.
데이터 성격이 밤12시에 값이 리셋되고 하루 내내 누적되는 형태라
1년간의 데이터를 그래프 형태로 다른 프로그램에서 그려줘야 하는 상황입니다.
결국 하루하루 누적 그래프를 그릴려면 하루중 가장 마지막 데이터만 구하면 되는 상황인데 어떤식으로 쿼리를 작성해야할지 감이 잘 안와서요
정확한 쿼리가 아니라 생각해야하는 방향만 제시해주셔도 감사할꺼 같아요
Comment 3
-
짱나부러
2015.09.11 17:42
-
처리짱
2015.09.14 17:23
SELECT MAX(DATE) as DATE
FROM 테이블
GROUP BY CONVERT(NVARCHAR(20), DATE, 112)
이런식으로 하면 하루의 마지막 날짜는 구해 질거 같습니다.
-
한태
2016.03.30 19:53
create index lasttime_time_data on lasttime(time,data)insert into lasttime values('aaa', '2016-02-28 10:00:00'),('bbb', '2016-02-28 20:00:00'),('ccc', '2016-02-29 10:00:00'),('ddd', '2016-02-29 20:00:00'),('eee', '2016-03-01 10:00:00'),('fff', '2016-03-01 20:00:00'),('ggg', '2016-03-02 10:00:00'),('hhh', '2016-03-02 20:00:00'),('iii', '2016-03-03 10:00:00'),('jjj', '2016-03-03 20:00:00'),('kkk', '2016-03-04 10:00:00'),('lll', '2016-03-04 20:00:00'),('mmm', '2016-03-05 10:00:00'),('nnn', '2016-03-05 20:00:00')select a.data, b.mtfrom lasttime a inner join( select MAX(time) mtfrom lasttimegroup by CONVERT(NVARCHAR(20), time, 112)) bon a.time=b.mt위의 쿼리를 통해 하루 중 마지막 데이터를 구하고 조인하였습니다.
음.. 하루 중 마지막 데이터만 필요하시다 하면 쿼리로도 풀 수 있겠지만....
하루 중 마지막 데이터만 저장하는 테이블을 따로 두어
if ( 하루 중 마지막 = true ) insert table
해서 보여주는것도 방법일 것 같습니다..
조회 조건에 따라 컬럼을 추가 하는것도 좋을거 같습니다. (예: year, month)
쿼리는 다음 분이 만들어 주실거에요~