오라클에서 데이터를 조회할때 중복되는 값들을 카운트하고 싶은데
도와주세요ㅜㅜㅜ
데이터 형식은
이름 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의 조건문을 어떡해 설정해야할지 모르겠어요ㅜㅜ
조언 부탁드립니다!!
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는 결과 값 순서 맞출라고 한겁니다.
원하시는게 이건지 모르겠네요