데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

쿼리좀 풀어주세요-2

메아리 2016.11.16 20:08 Views : 1987

안녕하세요 


이리님게 대단히 감사 하다고 말씀 드립니다 ^^


감사드리고요


마지막 한고비좀 부탁 드립니다.


- 이전글에 이어서 입니다 - http://www.sqler.com/index.php?mid=bSQLQA&document_srl=882234



;WITH TBLX(sensor_id, [timestamp], calc_value)

AS

(

SELECT '000', '2016-11-16 11:51:41', 0.02 UNION ALL 

SELECT '000', '2016-11-16 11:52:42', 0.01 UNION ALL

SELECT '000', '2016-11-16 11:53:43', 0.03 UNION ALL

SELECT '054', '2016-11-16 11:51:44', 0.01 UNION ALL 

SELECT '054', '2016-11-16 11:52:45', 0.02 UNION ALL

SELECT '054', '2016-11-16 11:53:46', 0.03 UNION ALL

SELECT '000', '2016-11-17 11:51:47', 0.02 UNION ALL 

SELECT '000', '2016-11-17 11:52:48', 0.01 UNION ALL

SELECT '000', '2016-11-17 11:53:49', 0.03 UNION ALL

SELECT '054', '2016-11-17 11:51:50', 0.01 UNION ALL 

SELECT '054', '2016-11-17 11:52:51', 0.02 UNION ALL

SELECT '054', '2016-11-17 11:53:52', 0.03

)



SELECT CONVERT(NVARCHAR(19), timestamp, 120) as '계측일시',[000], [054] 

FROM

(

SELECT ROW_NUMBER() OVER(PARTITION BY sensor_id, SUBSTRING([timestamp], 1, 10) ORDER BY [timestamp]) AS ROW_NUM

, sensor_id

, [timestamp]

, calc_value

FROM TBLX

where timestamp BETWEEN '2016-11-16 00:00:00' AND '2016-11-17 23:59:00'  

AND sensor_id IN ('054', '000')

) AS T1

--WHERE T1.ROW_NUM = 1 ============================> 풀면 오류 입니다.

PIVOT 

(

 MAX(calc_value) FOR sensor_id IN ([000], [054])

) AS pvt    



이리님이 주신 쿼리를 조금 변경해서, 피벗을 사용 하였습니다.

한데, where 절과 충돌이 발생 합니다.


밑에서 다섯번재 줄에  WHERE 절이 pivot 과 말썽을 일으킵니다.


죄송하게도 마지막 까지 스스로 하지를 못하네요 


다시한번 이리님께 감사의 말씀을 드립니다 

감사 합니다 ^^








XE Login