특정 칼럼 최대값만 검색 1 4 1,707

by 쌈장묵자 [SQL Query] [2016.01.22 15:53:31]


Name plan_cd input_id cellphone address
111 1 asd 111 11
222 2 qwe 123111 11
333 3 123 11 11
444 3 zxc 11 111

 

select 결과 값이 이렇게 나온다고 하면요

plan_cd 가 최대값 즉 3인 애들만 검색 하고 싶다면 어떻게 해야 할까요?

333 3 123 11 11
444 3 zxc 11 111

select값이 달라 질수도 있습니다 항상 plan_cd가 최대값인 칼럼만 뽑아 내고 싶을때요

max로 group by함수로 하는건 아닌거 같아서

by 아발란체 [2016.01.22 16:04:12]
--1
WITH T(Name, plan_cd, input_id, cellphone, address) AS (
	SELECT '111', '1', 'asd', '111', '11' FROM DUAL
	UNION ALL SELECT '222', '2', 'qwe', '123111', '11' FROM DUAL
	UNION ALL SELECT '333', '3', '123', '11', '11' FROM DUAL
	UNION ALL SELECT '444', '3', 'zxc', '11', '111' FROM DUAL
)
SELECT * FROM T WHERE plan_cd IN(SELECT MAX(plan_cd) FROM T)

 

--2 윈도우 함수 이용

SELECT * FROM (
  SELECT
    name, plan_cd, input_id, cellphone, address,
    RANK() OVER(ORDER BY plan_cd DESC) AS rk
  FROM
    T
) WHERE
  rk = 1

 

 


by 쌈장묵자 [2016.01.22 16:26:28]

답변 감사합니다 정말 쿼리는 쉽지 않네요 ㅎㅎ


by 타이니스타 [2016.01.22 16:05:43]

select * from 테이블A where plan_cd = (select max(plan_cd) from 테이블A);


by 쌈장묵자 [2016.01.22 16:26:43]

답변 감사합니다 ㅎㅎ 많이 배워 갑니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입