250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- Oracle
- html
- show graph characteristics
- SQLD
- list multiplication
- simple case expression
- 위코드
- searched case expression
- 뷰
- 코드 스니펫
- 비절차적 데이터 조작어
- python
- SQL
- 정규식 연산
- window 함수
- JavaScript
- execute immediate
- sql 저장 모듈
- MYSQL
- 자료구조
- 문법 차이
- dom
- dense rank
- 기업 협업
- coalesce
- 정보처리기사
- Node.js
- GROUPING
- git
- ROLLUP
Archives
- Today
- Total
프로그래밍 숲
HAVING 절과 EXISTS 연산자가 있는 복잡한 SQL문 분석해보기 본문
728x90
반응형
SELECT
m.MemberID,
m.MemberName,
m.Email
FROM
Member m
WHERE
EXISTS (
SELECT
'x'
FROM
Event e
INNER JOIN SendMail sm ON e.EventID = sm.EventID
WHERE
e.StartDate >= '2014-10-01'
AND m.MemberID = sm.MemberID
GROUP BY
e.EventID
HAVING
COUNT(*) < (
SELECT
COUNT(*)
FROM
Event
WHERE
StartDate >= '2014-10-01'
)
)
위 SQL문은 이벤트 시작일자가 '2014.10.01.'과 같거나 큰 이벤트를 기준으로 단 한차례라도 이메일 발송이 누락된 멤버를 추출하는 SQL 문장입니다.
HAVING 절
내부 서브쿼리
SELECT COUNT(*)
FROM Event
WHERE StartDate >= '2014-10-01'
StartDate가 2014년 10월 1일 이후인 Event 테이블에서 이벤트 수를 검색합니다.
외부 HAVING 절
HAVING COUNT(*) < (subquery)
여기서 'COUNT(*)'는 이전 'EXISTS' 하위 쿼리 내의 특정 멤버에 대한 이벤트 수를 나타냅니다. 해당 구성원과 관련된 이벤트 수를 나타냅니다.
'COUNT(*) < (subquery)' 비교는 특정 멤버의 이벤트 수가 2014년 10월 1일 이후에 시작하는 이벤트가 있는 모든 멤버의 이벤트 수보다 적은지 확인합니다.
728x90
반응형
'프로그래밍_인포 > 데이터베이스&SQL' 카테고리의 다른 글
ANSI SQL: 데이터베이스 호환성과 일관성을 강화하는 표준화된 쿼리 언어 (0) | 2023.06.01 |
---|---|
VARCHAR vs VARCHAR2: Oracle 데이터베이스에서 문자열 데이터 유형 선택하기 (0) | 2023.05.31 |
체크 제약조건(Check Constraint)의 정의와 예시 (0) | 2023.05.30 |
SQL 명령어 DCL(GRANT, REVOKE) & TCL(COMMIT, ROLLBACK) 예시 (0) | 2023.05.29 |
정규화 과정이란? 제1정규형, 제2정규형, 제3정규형, BCNF (0) | 2023.05.14 |
Comments