쉬울거 같으서 생각보다 어렵네요 ㅎ
날짜를 가져오려고 하는데 조건은
아래 같은 상태로 count 집계한 상태에서 count 합이 300 이상인 최근 날짜..
아래 데이터로 치자면 2014-04-10 요렇게요.
(2014-04-10 부터 2014-04-18 ) 까지 다 더하면 300이 넘으므로
ID | DATE | CNT |
1 | 2014-04-18 | 6 |
1 | 2014-04-17 | 35 |
1 | 2014-04-16 | 135 |
1 | 2014-04-15 | 103 |
1 | 2014-04-14 | 8 |
1 | 2014-04-11 | 9 |
1 | 2014-04-10 | 56 |
1 | 2014-04-09 | 78 |
1 | 2014-04-08 | 175 |
1 | 2014-04-07 | 110 |
function, sp 다 상관없고 테이블에 데이터가 10만건넘더라도 아주 빠르게 동작하길 원합니다.
매 페이지에서 호출 한 후에 얻어온 날자 값으로 쿼리 조건에 넣으려고 하거든요..
도움 부탁드립니다!!
자답입니다 아래처럼 했씁니다.. 속도는 괜찮을까 모르겠네요..
DECLARE @start_date NVARCHAR(10)
SET @start_date = (SELECT Min(date)
FROM (SELECT TOP 300 date
FROM table
WHERE id = '1'
ORDER BY date DESC) a)