오라클 중복 카운트 조건문 설정 0 2 1,615

by 초보엔지니어 [Oracle 기초] 오라클 쿼리 중복 카운트 조건문 [2017.09.18 17:36:10]


오라클에서 데이터를 조회할때 중복되는 값들을 카운트하고 싶은데

도와주세요ㅜㅜㅜ

 

데이터 형식은

이름       IP       출력        날짜

철수    1.1.1.1      Y     2017-09-17

철수    1.1.1.1      Y     2017-09-18

철수    1.1.1.1      Y     2017-09-18

철수    1.1.1.1      Y     2017-09-18

철수    1.1.1.1      N     2017-09-18

철수    2.2.2.2      Y     2017-09-18

철수    2.2.2.2      N     2017-09-18

영희    1.1.1.1      Y     2017-09-18

영희    1.1.1.1      N     2017-09-18

     

이런식으로 데이터가 조회가 되면

 

이름      반       출력       날짜           카운트

철수    1.1.1.1      Y     2017-09-17        1회

철수    1.1.1.1      Y     2017-09-18        3회

철수    1.1.1.1      N     2017-09-18        1회

철수    2.2.2.2      Y     2017-09-18        1회

철수    2.2.2.2      N     2017-09-18        1회

영희    1.1.1.1      Y     2017-09-18        1회    

영희    1.1.1.1      N     2017-09-18        1회

 

이런식으로 날짜에 맞춰서 IP와 출력을 조건으로 걸어서 카운트 하는 쿼리를 짜려고하는데

GROUP BY를 생각하고있는데 GROUP BY의 조건문을 어떡해 설정해야할지 모르겠어요ㅜㅜ

조언 부탁드립니다!!

by 호리 [2017.09.18 17:42:32]
WITH CTS AS (
SELECT '철수' AS NAME, '1.1.1.1' AS IP, 'Y' AS OUT, '2017-09-17' AS REG_DATE FROM DUAL
UNION ALL
SELECT '철수' AS NAME, '1.1.1.1' AS IP, 'Y' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '철수' AS NAME, '1.1.1.1' AS IP, 'Y' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '철수' AS NAME, '1.1.1.1' AS IP, 'Y' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '철수' AS NAME, '1.1.1.1' AS IP, 'N' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '철수' AS NAME, '2.2.2.2' AS IP, 'Y' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '철수' AS NAME, '2.2.2.2' AS IP, 'N' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '영희' AS NAME, '1.1.1.1' AS IP, 'Y' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
UNION ALL
SELECT '영희' AS NAME, '1.1.1.1' AS IP, 'N' AS OUT, '2017-09-18' AS REG_DATE FROM DUAL
)
SELECT NAME, IP, OUT, REG_DATE, COUNT(*)
FROM CTS
GROUP BY NAME, IP, OUT, REG_DATE
ORDER BY 1 DESC, 2, 3 DESC, 4

order by는 결과 값 순서 맞출라고 한겁니다. 

원하시는게 이건지 모르겠네요


by 초보엔지니어 [2017.09.19 09:27:24]

아 확인해보니 잘되네요ㅜㅜㅜㅜ

조언 감사합니다!!

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