[SQL] 그룹 데이터, 그룹 - group by 필터 링, having
4300 단어 sql
그룹 은 SELECT 문장의 GROUP BY 자구 에서 이 루어 집 니 다.그것 의 역할 은 일정한 규칙 을 통 해 하나의 데이터 세트 를 몇 개의 작은 구역 으로 나 눈 다음 에 몇 개의 작은 구역 에 대해 데이터 처 리 를 하 는 것 이다.SELECT 자구 의 열 이름 은 그룹 열 이나 열 함수 여야 합 니 다. 열 함 수 는 GROUP BY 자구 가 정의 하 는 각 그룹 에 각각 결 과 를 되 돌려 줍 니 다.
일부 규정:
예시:
<span style="font-family:SimSun;font-size:10px;">select departmentid, count(*) as 'number' from basicdepartment group by departmentid;</span>
depart. ment id 는 데이터 세트 를 그룹 으로 나 눈 다음 에 각 그룹의 통계 데 이 터 를 각각 얼마나 합 니까?
count (*) 를 사용 하지 않 고 다음 과 같은 문법 을 사용한다 면:
<span style="font-family:SimSun;font-size:10px;">select departmentid, departmentname from basicdepartment group by departmentid;</span>
집합 함수 나 GROUP BY 자구 에 포함 되 어 있 지 않 기 때문에 목록 에 있 는 departmentname 을 선택 하 는 중 오류 가 발생 할 수 있 습 니 다.
메모: 집합 필드 에 되 돌아 오 면 이 필드 는 그룹 을 나 누 는 근거 로 GROUP BY 문장의 뒤에 포함 되 어야 합 니 다.아니면 집합 함수 에 포함 되 어야 합 니 다.
필터 그룹 - HAVING
그룹 데 이 터 를 GROUP BY 로 묶 을 수 있 는 것 외 에 SQL 은 그룹 을 걸 러 낼 수 있 으 며 어떤 그룹 을 포함 하고 어떤 그룹 을 제외 하 는 지 규정 합 니 다.예 를 들 어 적어도 두 개의 주문 이 있 는 모든 고객 을 열거 하려 면 이 데 이 터 를 얻 기 위해 서 는 개별 줄 이 아 닌 완전한 그룹 을 기반 으로 여과 해 야 합 니 다.
WHERE 필터 줄, HAVING 필터 그룹.HAVING 은 모든 WHERE 연산 자 를 지원 하 며, HAVING 자구 에 집합 함 수 를 사용 할 수 있 습 니 다.WHERE 는 데이터 그룹 을 나 누 기 전에 필터 링 을 합 니 다.HAVING 은 데이터 그룹 을 나 눈 후 필터 링 을 합 니 다.WHERE 에서 제외 한 줄 은 그룹 에 포함 되 지 않 습 니 다.
예시:
select cust_id, count(*) as orders from Orders group by cust_id having count(*) >= 2;
그룹 V. S. 정렬 - GROUP BY V. S. ORDER BY
ORDER BY
GROUP BY
정렬 출력
그룹 줄 이지 만 출력 은 그룹 순서 가 아 닐 수 있 습 니 다.
임 의 열 은 모두 사용 할 수 있다.
선택 열 이나 표현 식 열 만 사용 할 수 있 으 며, 각 선택 열 표현 식 을 사용 해 야 합 니 다.
꼭 필요 한 것 은 아니다
집합 함수 와 함께 열 을 사용 하려 면 반드시 사용 해 야 합 니 다.
절대 그룹 BY 정렬 데이터 에 만 의존 하지 마 세 요.
예시
다음 표: 학생 번호 (SNO), 수업 명 (PNO), 성적 (GRADE)
1 YY 90 1 SX 98 1 YW 95 2 YY 92 2 SX 91 2 YW 89 3 YY 96 3 SX 88 3 YW 85 4 YY 88 4 SX 89 4 YW 95
1. 현식 90 점 이상 학생 의 수업 명 과 성적
select * from sc where GRADE >= 90
4 YW 95 3 YY 96 2 YY 92 2 SX 91 1 YY 90 1 SX 98 1 YW 95
2. 명시 적 으로 모든 학생 의 성적 이 90 점 이상 인 것 은 각각 몇 개가 있 습 니까?
select SNO, count(*) from sc where GRADE >= 90 group by SNO
1
3
2
2
3
1
4
1
3. 최소 두 과목 이 90 점 이상 인 학생 번호 와 90 점 이상 인 과정 수 (필터 그룹)
select SNO, count(*) from sc where GRADE >= 90 group by SNO having count(*) >= 2
1
3
2
2
4. 평균 성적 이 90 점 이상 이 고 국어 가 95 이상 이 어야 하 는 학생 을 선정 하 다.
select SNO, avg(GRADE) from sc where SNO in (select SNO from sc where PNO = 'YW' and GRADE >= 95) group by SNO having avg(GRADE) >= 90
1
94.333336
4
90.666664
* * * 적용 * * *
주식 순서 표 torder_fidessa_his :
order_id order_qty symbol ex_destination
00001768627ORHK1 6000 933 HK 00001768632ORHK1 1200 933 HK 00001768634ORHK1 2000 941 HK 00001768634ORHK1 6000 941 HK 00001768634ORHK1 6000 941 HK 00001768634ORHK1 7000 941 HK
같은 symbol 에 다른 ex 가 존재 하 는 지 확인 합 니 다.대상 값:
select temp.symbol, count(*) from
(select t.symbol as symbol, t.ex_destination as ex_destination from t_order_fidessa_his t group by t.symbol, t.ex_destination) temp
group by temp.symbol having count(*) > 1
두 번 의 group by 를 통 해 조회 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.