데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
SELECT절에서 COUNT와 MAX 조건을 다르게 가져오고 싶습니다.
현재 테이블에는 IP, PORT, DATETIME, SMSTime 4개의 컬럼이 있고
SELECT IP, PORT, COUNT(IP) AS IP, MAX(SMSTime) AS MAXSMSTime
FROM TCPingFail
WHERE DATETIME >= DATEADD(SECOND,-3600,GETDATE())
GROUP BY IP, PORT
이런식으로 가져오고 싶은데
COUNT(IP)에서 수집되는 카운트는 DATEADD -60인 건들의 카운트만 가져오고
MAX에서 검색되는 건은 DATEADD -3600인 건들을 가져오고 싶습니다.
이런저런 방법 생각해봤으나 좋은 방법이 떠오르지 않아서 도움 요청 드립니다.
좋은 방법 알려주시면 감사하겠습니다.
감사합니다.
SELECT절에서 COUNT와 MAX 조건을 다르게 가져오고 싶습니다.
현재 테이블에는 IP, PORT, DATETIME, SMSTime 4개의 컬럼이 있고
SELECT IP, PORT, COUNT(IP) AS IP, MAX(SMSTime) AS MAXSMSTime
FROM TCPingFail
WHERE DATETIME >= DATEADD(SECOND,-3600,GETDATE())
GROUP BY IP, PORT
이런식으로 가져오고 싶은데
COUNT(IP)에서 수집되는 카운트는 DATEADD -60인 건들의 카운트만 가져오고
MAX에서 검색되는 건은 DATEADD -3600인 건들을 가져오고 싶습니다.
이런저런 방법 생각해봤으나 좋은 방법이 떠오르지 않아서 도움 요청 드립니다.
좋은 방법 알려주시면 감사하겠습니다.
감사합니다.
Comment 2
-
자리비움
2017.10.16 14:19
SELECT IP, PORT, IP = COUNT(IP), MAXSMSTime = (SELECT MAXSMSTime = MAX(SMSTime) FROM TCPingFail WHERE IP = A.IP AND PORT = A.PORT AND [DATETIME] >= DATEADD(SECOND,-3600,GETDATE()))FROM TCPingFail AS AWHERE [DATETIME] >= DATEADD(SECOND,-60,GETDATE())GROUP BY IP, PORT -
tempest
2017.10.16 21:21
와 감사합니다. 정확히 제가 원하던 답을 주셨네요. 감사합니다!