1. DB
A | B | C | D | E | F | G | H |
III | 1 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
III | 2 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
JJJ | 1 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
JJJ | 2 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
JJJ | 3 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
JJJ | 4 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
KKK | 1 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
KKK | 2 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
KKK | 3 | 일자 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 | 데이터 값 |
<조건>
select A,B,C,D,E,F from DB where D like '데이터%' and DateTime between '2018-01-01 00:00:00' and '2018-03-01 23:59:59'
안녕하세요. 특정일자에 중복된(A컬럼)값 기준으로 B컬럼의 최대 값만 표시를 하고 싶은데..
어떻게 하는지 확인이 가능할까요??
데이터다 많아 일단 위 조건으로 1차 필터를 하고 그중에서 위에 표시한 색만 추출하고자 합니다.
가능할까요??
Comment 4
-
withSQLServer
2018.05.16 16:09
-
노란하늘
2018.05.16 17:15
정상적으로 조회는 됩니다.
그런데 실행계획에서 보니 Scan행수가 어마 어마 합니다.
다른 방법이 없을까요;;
select top 1000 A, B, DateTime, D, E, F, G, H, I, J, K, L, M, N
from (select ROW_NUMBER() OVER(PARTITION by A order by B desc) as row_num, * from DB) as A where row_num = 1 and D like '25165' and DateTime between '2018-01-23 00:00:00' and '2018-01-23 23:59:59' -
폭주
2018.05.16 17:21
select top 1000 A.A, B, DateTime, D, E, F, G, H, I, J, K, L, M, N
from DB as AJOIN
(
select a,max(b) AS mb
from db
group by a
) as b
on a.a=b.a AND a.b=b.mb
where D like '25165' and DateTime between '2018-01-23 00:00:00' and '2018-01-23 23:59:59'
-
노란하늘
2018.05.16 17:51
덕분에 잘 해결하였습니다.
감사합니다.