Share via


집계 정식 함수

집계는 일련의 입력 값을 단일 값으로 줄이는 식입니다. 집계는 일반적으로 SELECT 식의 GROUP BY 절과 함께 사용되며 사용할 수 있는 위치에 대한 제약 조건이 있습니다.

집계 Entity SQL 정식 함수

다음은 집계 Entity SQL 정식 함수입니다.

Avg(expression)

null이 아닌 값의 평균을 반환합니다.

인수

Int32, Int64, DoubleDecimal입니다.

반환 값

expression의 형식이거나 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE AVG(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE AVG(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

BigCount(expression)

null 값과 중복 값을 비롯한 집계의 크기를 반환합니다.

인수

모든 형식입니다.

반환 값

Int64입니다.

예제

queryString = @"SELECT VALUE BigCount(p.ProductID)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE BigCount(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 

Count(expression)

null 값과 중복 값을 비롯한 집계의 크기를 반환합니다.

인수

모든 형식입니다.

반환 값

Int32입니다.

예제

queryString = @"SELECT VALUE Count(p.ProductID)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Count(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 

Max(expression)

null이 아닌 값의 최대값을 반환합니다.

인수

Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal, DateTime, DateTimeOffset, Time, String, Binary입니다.

반환 값

expression의 형식이거나 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE MAX(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MAX(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

Min(expression)

null이 아닌 값의 최소값을 반환합니다.

인수

Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal, DateTime, DateTimeOffset, Time, String, Binary입니다.

반환 값

expression의 형식이거나 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE MIN(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MIN(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

StDev(expression)

null이 아닌 값의 표준 편차를 반환합니다.

인수

Int32, Int64, Double, Decimal입니다.

반환 값

Double. 모든 입력 값이 Null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE StDev(product.ListPrice)
    FROM AdventureWorksEntities.Products AS product
    WHERE product.ListPrice > @price";
SELECT VALUE StDev(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price

StDevP(expression)

모든 값의 모집단에 대한 표준 편차를 반환합니다.

인수

Int32, Int64, Double, Decimal입니다.

반환 값

Double이거나, 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE StDevP(product.ListPrice)
    FROM AdventureWorksEntities.Products AS product
    WHERE product.ListPrice > @price";
SELECT VALUE StDevP(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price

Sum(expression)

null이 아닌 값의 합계를 반환합니다.

인수

Int32, Int64, Double, Decimal입니다.

반환 값

Double이거나, 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE Sum(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Sum(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

Var(expression)

null이 아닌 모든 값의 분산을 반환합니다.

인수

Int32, Int64, Double, Decimal입니다.

반환 값

Double이거나, 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE Var(product.ListPrice)
    FROM AdventureWorksEntities.Products AS product
    WHERE product.ListPrice > @price";
SELECT VALUE Var(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price

VarP(expression)

null이 아닌 모든 값의 모집단에 대한 분산을 반환합니다.

인수

Int32, Int64, Double, Decimal입니다.

반환 값

Double이거나, 모든 입력 값이 null 값인 경우 null입니다.

예제

queryString = @"SELECT VALUE VarP(product.ListPrice)
    FROM AdventureWorksEntities.Products AS product
    WHERE product.ListPrice > @price";
SELECT VALUE VarP(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price

동일한 기능을 Microsoft SQL 클라이언트 관리 공급자에서 사용할 수 있습니다. 자세한 내용은 Entity Framework용 SqlClient 함수를 참조하세요.

컬렉션 기반 집계

컬렉션 기반 집계(컬렉션 함수)는 컬렉션에 대해 작업을 수행하고 값을 반환합니다. 예를 들어, ORDERS가 모든 주문의 컬렉션인 경우 다음 식을 사용하여 가장 빠른 운송 날짜를 계산할 수 있습니다.

min(select value o.ShipDate from LOB.Orders as o)

컬렉션 기반 집계 내의 식은 현재 앰비언트 이름 결정 범위 내에서 계산됩니다.

그룹 기반 집계

그룹 기반 집계는 GROUP BY 절에 정의된 대로 그룹에 대해 계산됩니다. 결과의 각 그룹별로 각 그룹의 요소를 집계 계산에 대한 입력으로 사용하여 개별 집계가 계산됩니다. SELECT 식에 GROUP BY 절이 사용되는 경우에는 식 이름, 집계 또는 상수를 그룹화하는 식만 프로젝션 또는 ORDER BY 절에 있을 수 있습니다.

다음 예제에서는 각 제품에 대해 주문된 평균 수량을 계산합니다.

select p, avg(ol.Quantity) from LOB.OrderLines as ol
  group by ol.Product as p

SELECT 식에서 GROUP BY 절을 명시적으로 사용하지 않고 그룹 기반 집계를 사용할 수도 있습니다. 이 경우에는 모든 요소가 단일 그룹으로 간주됩니다. 이는 상수를 기준으로 그룹화를 지정하는 것과 같습니다. 예를 들어, 다음 식을 살펴보겠습니다.

select avg(ol.Quantity) from LOB.OrderLines as ol

이 식은 다음 식과 같습니다.

select avg(ol.Quantity) from LOB.OrderLines as ol group by 1

그룹 기반 집계 내의 식은 WHERE 절 식에 표시되는 이름 확인 범위 내에서 계산됩니다.

Transact-SQL과 마찬가지로 그룹 기반 집계도 ALL 또는 DISTINCT 한정자를 지정할 수 있습니다. DISTINCT 한정자를 지정하면 집계가 계산되기 전에 집계 입력 컬렉션에서 중복 항목이 제거됩니다. ALL 한정자를 지정하거나 어떠한 한정자도 지정하지 않으면 중복 항목이 제거되지 않습니다.

참고 항목