데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕 하세요
또한번의 쿼리를 구합니다.
WITH TBLX ([timestamp], calc_value)
AS
(
SELECT '2016-10-16 11:51:41', 0.02 UNION ALL
SELECT '2016-10-17 11:52:42', 0.01 UNION ALL
SELECT '2016-10-18 11:53:43', 0.03 UNION ALL
SELECT '2016-10-19 11:51:44', 0.01 UNION ALL
SELECT '2016-10-20 11:52:45', 0.02 UNION ALL
SELECT '2016-10-21 11:53:46', 0.03 UNION ALL
SELECT '2016-10-22 11:51:47', 0.00 UNION ALL
SELECT '2016-10-23 11:52:48', 0.01 UNION ALL
SELECT '2016-10-24 11:53:49', 0.03 UNION ALL
SELECT '2016-10-25 11:51:50', 0.01 UNION ALL
SELECT '2016-10-26 11:52:51', 0.02 UNION ALL
SELECT '2016-10-27 11:53:52', 0.03
)
위 테이블에서,
1. 첫번째 레코드를 찾는다
- select top 1 * from TBLX (요기까진 하겠습니다 만, 몇시간 삽질 해봐도 잘 안되네요 ㅋ)
2. 첫번째 레코드 날짜부터 시작해서, 일주일 전까지의 레코드를 찾는다
3. 찾는 조건은 calc_value 가 0 보다 클때 입니다.
그러니까
첫번째 레코드가 2016-10-27 이라면 (날짜순일때)
2016-10-20 부터 2016-10-27 까지 중에 calc_value 가 0 보다 큰값을
모두 select 하는 것입니다.
inner join, right join, 뭐 이것 저것 해봐도 잘 안됩니다.
그니까 어설프게 개념이 잡혀가지고는,
조회된 값을 테이블로 이용해서, 그 테이블의 날짜를 가져와서, 7을빼서,시작일자에 넣고,
가져온 날짜를 마지막 날짜에 넣고, 조건 넣고 하면 될것도 같은데
구현은 꽝입니다.
날짜를 가져와서, 시작일자에 집어넣는게 도통 안됩니다
죄송하지만 한수만 더 부탁 드립니다.
감사 합니다.
Comment 2
-
호리205
2016.11.17 10:20
WITH TBLX ([timestamp], calc_value)AS(SELECT '2016-10-16 11:51:41', 0.02 UNION ALLSELECT '2016-10-17 11:52:42', 0.01 UNION ALLSELECT '2016-10-18 11:53:43', 0.03 UNION ALLSELECT '2016-10-19 11:51:44', 0.01 UNION ALLSELECT '2016-10-20 11:52:45', 0.02 UNION ALLSELECT '2016-10-21 11:53:46', 0.03 UNION ALLSELECT '2016-10-22 11:51:47', 0.00 UNION ALLSELECT '2016-10-23 11:52:48', 0.01 UNION ALLSELECT '2016-10-24 11:53:49', 0.03 UNION ALLSELECT '2016-10-25 11:51:50', 0.01 UNION ALLSELECT '2016-10-26 11:52:51', 0.02 UNION ALLSELECT '2016-10-27 11:53:52', 0.03)SELECT A.timestamp, A.calc_valueFROM TBLX AS AINNER JOIN (SELECT TOP(1) DATEADD(DAY, -7, timestamp) AS LAST_TIMESTAMP, timestamp FROM TBLX ORDER BY timestamp DESC) AS BON A.timestamp >= B.LAST_TIMESTAMP AND A.timestamp <= B.timestampWHERE A.calc_value > 0TBLX 테이블과 일주일전 날짜를 조회한 쿼리를 조인조건 맞춰서 하시면 될 것 같습니다.INNER JOIN에 DESC 는 27일을 TOP1으로 가져오기 위해서 한것으로 필요하신 방향으로 수정하시면 될 것 같습니다. -
메아리
2016.11.17 10:27
호리님 감사 드립니다.
감사 하고요 ^^
카페에는 '리' 자 돌림 쓰시는 분들의 활약이, 실력이 상당하신것 같습니다 ^^
감사 합니다 ^^
No. | Subject | Author | Date | Views |
---|---|---|---|---|
9611 | 데이터 실시간 연동 관련 문의 입니다. [4] | 호짱 | 2016.11.21 | 4217 |
9610 | DB 복제에 대해 질문 드립니다. | 조형근 | 2016.11.21 | 3771 |
9609 | TABLE 특정컬럼 결과값 확인 [2] | 슬이슬이 | 2016.11.21 | 1766 |
9608 | 쿼리좀 풀어 주세요 [4] | 메아리 | 2016.11.18 | 2699 |
9607 | 100만건정도의 데이터를 한페이지에 모두 뿌려주는 게 가능할까요? [2] | 냥냥 | 2016.11.18 | 4064 |
9606 | 문자 치환에 대하여 질의드립니다. [1] | 방혁 | 2016.11.17 | 1485 |
9605 | 쿼리 관련 문의 [2] | 냥냥 | 2016.11.17 | 3048 |
» | 쿼리좀 구합니다 [2] | 메아리 | 2016.11.17 | 2366 |
9603 | sql 서버 관리 관련 질문 [1] | 오늘도난 | 2016.11.17 | 3247 |
9602 | 쿼리좀 풀어주세요-2 [2] | 메아리 | 2016.11.16 | 1982 |
9601 | 복구후 예전으로 다시 복원하는법이 있나요. [2] | 큘러 | 2016.11.16 | 3182 |
9600 | 쿼리좀 풀어주세요 ㅠ [12] | 메아리 | 2016.11.16 | 1933 |
9599 | 스칼라 함수 안에서 업데이트문..? [5] | 후알유? | 2016.11.15 | 2303 |
9598 | 문자 + 숫자 채번(시퀀스).. [2] | 후알유? | 2016.11.14 | 3723 |
9597 | 쿼리 쪼깨지? [2] | 문상연 | 2016.11.14 | 2493 |
9596 | mysql query 질문드립니다! [3] | rhqnffksdl | 2016.11.12 | 2378 |
9595 | select 속도 궁금증.. [2] | 후알유? | 2016.11.10 | 1980 |
9594 | 입력된 기간들의 중복을 제외한 총합을 구하고 싶습니다. [6] | 하늘민 | 2016.11.10 | 2431 |
9593 | outofmemory 문제 [2] | 에스디 | 2016.11.10 | 3464 |
9592 | sp_execute 11 문의 [1] | aspa77 | 2016.11.09 | 2061 |