>데이터 베이스 >Oracle >오라클 그룹을 사용하는 방법

오라클 그룹을 사용하는 방법

青灯夜游
青灯夜游원래의
2022-03-17 12:47:5210512검색

Oracle에서는 쿼리 결과를 그룹화하기 위해 "그룹화 기준" 키워드를 SELECT 문과 함께 사용해야 합니다. 행은 행 또는 표현식 값별로 그룹화된 요약 행으로 결합될 수 있습니다. "SELECT 필드 목록 FROM 데이터 테이블 이름 GROUP BY 필드 이름;".

오라클 그룹을 사용하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

Oracle GROUP BY 절 소개

GROUP BY 키워드는 하나 이상의 필드를 기반으로 쿼리 결과를 그룹화할 수 있습니다.

GROUP BY 절은 SELECT 문에서 행 또는 표현식의 값을 기준으로 행을 그룹화된 요약 행으로 결합하는 데 사용됩니다. GROUP BY 절은 각 그룹에 대해 하나의 행을 반환합니다.

GROUP BY 절은 일반적으로 AVG(), COUNT(), MAX(), MIN() 및 SUM()과 같은 집계 함수와 함께 사용됩니다. 이 경우 집계 함수는 각 그룹화에 대한 요약 정보를 반환합니다. 예를 들어, 여러 제품 카테고리가 있는 경우 AVG() 함수는 각 카테고리에 있는 제품의 평균 가격을 반환합니다.

다음은 Oracle GROUP BY 절의 구문을 보여줍니다.

SELECT
    字段列表
FROM
    数据表名
GROUP BY
    字段名;

GROUP BY 절은 FROM 절 뒤에 나타납니다. WHERE 절이 제공되는 경우 GROUP BY 절은 WHERE 절 앞에 배치되어야 합니다.

GROUP BY 절은 c1, c2 및 c3과 같은 그룹화 열의 값을 기준으로 행을 그룹화합니다. GROUP BY 절에는 집계 또는 그룹화된 열만 포함될 수 있습니다.

한 번에 계산해야 하는 여러 그룹화 수준을 지정하려면 다음 ROLLUP 구문을 사용하세요.

SELECT
    字段列表
FROM
    数据表名
GROUP BY
    ROLLUP(c1,c2,c3);

Oracle GROUP BY 예

다음 순서 및 order_items 데모용 테이블: ordersorder_items表进行演示:

오라클 그룹을 사용하는 방법

1. Oracle GROUP BY的基本示例

以下语句使用GROUP BY子句在orders表中查找唯一的订单状态:

SELECT
    status
FROM
    orders
GROUP BY
    status;

执行上面查询语句,得到以下结果 -

오라클 그룹을 사용하는 방법

该语句与使用DISTINCT运算符的以下语句具有相同的效果:

SELECT
    DISTINCT status
FROM
    orders;

2. Oracle GROUP BY聚合示例

以下语句返回客户的订单数量:

SELECT
    customer_id, COUNT( order_id )
FROM
    orders
GROUP BY
    customer_id
ORDER BY
    customer_id;

执行上面查询语句,得到以下结果 -

오라클 그룹을 사용하는 방법

在这个例子中,我们按客户编号来分组订单,并使用COUNT()函数返回每个组的订单数量。

要获得更有意义的数据,可以按以下方式将orders表与customers表一起连接:

SELECT
    name, COUNT( order_id )
FROM
    orders
INNER JOIN customers
        USING(customer_id)
GROUP BY
    name
ORDER BY
    name;

执行上面查询语句,得到以下结果 -

오라클 그룹을 사용하는 방법

3. Oracle GROUP BY表达式示例

以下示例按年份对订单进行分组,并返回每年订单的数量。参考以下查询语句 -

SELECT
    EXTRACT(YEAR FROM order_date) YEAR,
    COUNT( order_id )
FROM
    orders
GROUP BY
    EXTRACT(YEAR FROM order_date)
ORDER BY
    YEAR;

执行上面查询语句,得到以下结果 -

오라클 그룹을 사용하는 방법

在这个例子中,我们使用EXTRACT()函数从订单的日期中获取年份信息。

与前面的例子不同,这里使用了一个在GROUP BY子句中返回年份的表达式。

4. Oracle GROUP BY带有ROLLUP示例

以下语句计算销售额并按customer_idstatus和(customer_idstatus

오라클 그룹을 사용하는 방법

1. Oracle GROUP BY의 기본 예오라클 그룹을 사용하는 방법

다음 문에서는 GROUP BY를 사용합니다. code>절은 <code>orders 테이블에서 고유한 주문 상태를 찾습니다.

SELECT
    customer_id,
    status,
    SUM( quantity * unit_price ) sales
FROM
    orders
INNER JOIN order_items
        USING(order_id)
GROUP BY
    ROLLUP(
        customer_id,
        status
    );
위 쿼리 문을 실행하고 다음 결과를 얻습니다.

🎜오라클 그룹을 사용하는 방법🎜🎜이 문은 DISTINCT 연산자 효과: 🎜rrreee🎜🎜<span style="max-width:90%">2. Oracle GROUP BY 집계 예</span>🎜🎜🎜다음 문은 고객의 주문 수량을 반환합니다. 🎜rrreee🎜Execute 위 쿼리문에서 다음 결과를 얻습니다.🎜🎜<img src="https://img.php.cn/upload/image/272/423/267/164749220659479%EC%98%A4%EB%9D%BC%ED%81%B4%20%EA%B7%B8%EB%A3%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95" title="164749220659479오라클 그룹을 사용하는 방법" alt="오라클 그룹을 사용하는 방법">🎜🎜이 예에서는 고객 번호별로 주문을 그룹화하고 <code>COUNT() 함수를 사용하여 각 그룹의 주문 수량을 반환합니다. 🎜🎜보다 의미 있는 데이터를 얻으려면 orders 테이블과 customers 테이블을 다음과 같이 연결하면 됩니다. 🎜rrreee🎜위 쿼리 문을 실행하면 다음과 같은 결과를 얻을 수 있습니다. 🎜 🎜🎜🎜🎜 3. Oracle GROUP BY 표현식 예시🎜🎜🎜다음 예시에서는 주문을 연도별로 그룹화하고 각 연도의 주문 수량을 반환합니다. 다음 쿼리문을 참고하세요-🎜rrreee🎜위 쿼리문을 실행하면 다음과 같은 결과가 나옵니다-🎜🎜🎜🎜이 예에서는 EXTRACT() 함수를 사용하여 주문 날짜로부터 연도 정보를 가져옵니다. 🎜🎜이전 예시와 다르게 GROUP BY 절에 연도를 반환하는 표현식을 사용합니다. 🎜🎜🎜4. ROLLUP 예시를 사용한 Oracle GROUP BY🎜🎜🎜다음 문은 customer_id, status별로 매출을 계산합니다. 및 (customer_id, status) 그룹화: 🎜rrreee🎜위 쿼리 문을 실행하고 다음 결과를 얻습니다. 🎜🎜🎜🎜🎜권장 튜토리얼: " 🎜오라클 튜토리얼🎜"🎜

위 내용은 오라클 그룹을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.