안녕하세요.. 오라클 db sql 쿼리 질문을 드립니다.. 2

by 달빛그림자 [SQL Query] [2022.04.01 14:25:03]


안녕하세요.. 오라클 DB SQL 쿼리 질문 드립니다..

=============

(문제) 평균나이가 20대인 그룹만 보고 싶습니다.  아이돌 그룹 이름,   그룹 멤버들의 평균나이를 출력하세요..
(단, 평균 나이가 어린 그룹순으로...)

 

아래 그림은 현재 IDOL_MEMBER 테이블 입니다..

해도해도 안되어 질문을 드립니다.. 

죄송합니다..  

 

by 우리집아찌 [2022.04.01 16:48:45]

만 나이 인가요?


by 달빛그림자 [2022.04.01 17:43:01]

만 나이로 해도 되고..   만 나이가 아니여도 괜챦습니다..  답변 고맙습니다.


by 마농 [2022.04.04 10:16:04]
WITH idol_member AS
(
SELECT 'BTS' idol_group_nm, '진' stage_member_nm, '김석진' real_member_nm, '19921204' birthday, 'KOR' nationality_cd, 1 sex_cd FROM dual
UNION ALL SELECT 'BTS', '슈가'  , '민윤기', '19930309', 'KOR', 1 FROM dual
UNION ALL SELECT 'BTS', '제이홉', '정호석', '19940218', 'KOR', 1 FROM dual
UNION ALL SELECT 'BTS', 'RM'    , '김남준', '19940912', 'KOR', 1 FROM dual
UNION ALL SELECT 'BTS', '지민'  , '박지민', '19951013', 'KOR', 1 FROM dual
UNION ALL SELECT 'BTS', '뷔'    , '김태형', '19951230', 'KOR', 1 FROM dual
UNION ALL SELECT 'BTS', '정국'  , '진정국', '19970901', 'KOR', 1 FROM dual
)
SELECT idol_group_nm
     , TRUNC(AVG(TO_CHAR(sysdate, 'yyyy') - SUBSTR(birthday, 1, 4) + 1), 2) age_kor
     , TRUNC(AVG(FLOOR(MONTHS_BETWEEN(TRUNC(sysdate), TO_DATE(birthday, 'yyyymmdd')) / 12)), 2) age_man
  FROM idol_member
 GROUP BY idol_group_nm
HAVING TRUNC(AVG(TO_CHAR(sysdate, 'yyyy') - SUBSTR(birthday, 1, 4) + 1), -1) = 20 
--HAVING TRUNC(AVG(FLOOR(MONTHS_BETWEEN(TRUNC(sysdate), TO_DATE(birthday, 'yyyymmdd')) / 12)), -1) = 20
;

 


by 달빛그림자 [2022.04.04 17:13:05]

와~~~ 마농님.. 넘넘 고맙습니다~~~ 좋은 하루 되세요~~~^^ 

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