,,,
아우터 조인이 무의미하게 사용된 듯 합니다. 특정 목적(테이블 읽는 순서 고정 등..)을 가지고 작성된것이 아니라면 (+)기호는 없애야 하며 정말 특정 목적을 위해 의도된 쿼리라면? 주석으로 설명을 달아놓아야 합니다. 나중에 유지보수하는 사람이 (+) 때문에 고생할 수 있습니다.
SELECT lot_id , parameter, usl, ucl, lcl, lsl , data FROM (SELECT a.lot_id , b.parameter, b.usl, b.ucl, b.lcl, b.lsl , a.data , ROW_NUMBER() OVER(ORDER BY a.data DESC, a.lot_id DESC) rn FROM -- 이하생략 -- ) WHERE rn = 1 ;
마농님.... 감사합니당..
그런데. .제가 의도하는 건....
데이터에 각 LOT 별로 PARAMETER 가 중복되어 여러게 나오잖아요?
그 값들을 각각 하나의 ROW 들로 표현하고 싶습니다.
조건은 MAX(A.DATA) 즉 값이 제일 큰 놈 중 MAX(LOT_ID) ..
즉 값이 젤 큰놈을 먼저 고 그 다음은 MAX(LOT) 인 놈을 각각 하나의 PARAMETER 로
가져 오는게 미션이랍니다.
마농님.. 부디 한번 더 부탁 드립니다.
감사합니다.
설명이 이상합니다. LOT 별로 여러게 나오는걸 하나의 ROW 로 표현하고 싶다? 하고서는 MAX(LOT_ID) 를 뽑는다는게 말이 안되요. 위 데이터에서 최종 나와야 하는 결과가 무엇인지? 해당 결과가 나와야하는 이유가 뭔지?
마농님...
정말 감사 드려요.. 그럼.. 이렇게 설명 드리면 어떻까요?
col1 col2 col3
20150101 ff 4000
20150201 ff 3000
20150301 ff 2000
이 값중 group by 해서 col3 중 가장 가장 큰 값을 가져 오되, col1 의 날짜가 가장 현재와 가까운 row 를
가져 오는 겁니다.
이런식으로 데이터가 구성이 되어있어욤.. 즉 col2 는 parameter 라고 보시면 되고... col1 은 lot 라고 보면... 이런식으로 데이터가 각 parameter 별로 있답니다. 이중 위 조건을 만족하는 놈만 있으면 되고욤..
이게 맞나 모르겠어욤.. ㅜㅜ
col1 col2 col3 20150101 ff <- 4000 20150201 ff 3000 20150301 <- ff 2000
결과를 명확하게 보여주셔야죠... max 값 4000 에 해당하는 ff 를 찾아 그중 최대값 20150301 을 찾아 다음과 같이 한줄로 표현하면 되는 것인지? 20150301 ff 2000 아니면 다음과 같이 마지막줄이 표현하면 되는 것인지? 20150301 ff 4000 아니면 col2 별로 1줄씩 각각 나와야 하는 것인지? 20150101 ee 2000 20150301 ff 4000 20150201 gg 3000
네. .맞습니다. 마농님..
COL2 별로 1줄식 나와야 합니다.
결과 값은 20150201 의 3000 이 나와야 합니다.
이게 제가 설명드린, 값은 MAX 이나 가장 최근 날짜의 값입니다.
이게 COL2 별로 나와야 합니당.....
죄송해요.. 잘 설명 못드려서욤.... 도움 주셔서 너무 감사 드리고요....
엥? 20150201 의 3000 은 갑짜기 어디서 튀어나온건지..... ㅜ,.ㅡ
-- 그냥 단순 Group By 문제네요... SELECT MAX(a.lot_id) lot_id , b.parameter, b.usl, b.ucl, b.lcl, b.lsl , MAX(a.data) data FROM -- 이하생략 -- GROUP BY b.parameter, b.usl, b.ucl, b.lcl, b.lsl ;
좀 이상하죠?
저두욤... 이게 이상한데....
데이터가 셋이 있는데.... COL3의 값은 MAX 값으로 가져 오되..... 가장 최근 날짜의 데이터를
원하거든요
COL3 가 4000인 값이 MAX 이기 하나, 날짜로 보면 가장 나중 날짜기 때문에. 두 번째인
20150201 의 3000을 가져와야 하는 상황입니다.
ㅜㅜ 저도 이게 맞나 싶어욤...
음.... 자꾸 헷갈리게 하지 마시구요 ^^
다음 자료 보시고 결과를 명확하게 적어주세요... 설명만 적지 마시고...
결과가 어떤건가요?
왜 갑짜기... 결과가
1행도 아니고
3행도 아니고
1행과 3행이 혼합된 형태도 아니고
어중간한, 쌩뚱맞은... 2행이라고 하시는지????
아주 간단하고 쉬운 문제인데...
왔다갔다 갈피를 못잡고 있는 질문이 문제풀이를 어렵게 만들고 있습니다.
ㅋㅋㅋㅋ.. 죄송요..... ^^
그래도 끈기 있게 봐 주셔서 감사용... ^^
2행이 나오는게 맞습니다. 근데. 저도 이게 맞나 싶어요.... 이 생각이...
미션 1. .두둥...
COL3 의 MAX 값을 출력해야 함. 그럼 값은 4000 행을 가져오는 것이 맞음.
미션 2. 두둥....
근데. .나쁜 사용자놈이... COL1 의 날짜가 가장 빠른 놈이어야 한다고 함.
그럼 20150301 이 맞음....
미션 3 두둥...
그런데.. 이 눔이.... COL3 의 값이 2000 은 MIN(최소값) 이지 않냐.. 않된다.. 합니다.
그럼 어쩌라고.. 그랬는데.. 2000 보다 큰 값이 면서 가장 최근 날짜에 있는게..
2행에 있지 않냐
그럼 그 데이터들을 보여줘.. 합니다. ㅜㅜ
저 그냥 포기 하려고 합니당.. ㅜㅜ.....
마농님 감사합니다 ^^...