CAFE

vb6 내장함수

SQL 계산 함수 avg,count,min,max,stdev,stdevp,sum,var,varp

작성자올란도|작성시간09.01.29|조회수1,041 목록 댓글 0

◆◆ SQL 계산 함수

SQL 계산 함수 사용하여 일련의 값에 대한 다양한 통계를 구할 있습니다. 질의에서 함수를 사용 있고 QueryDef 개체의 SQL 속성에서 계산식을 사용할 있으며 SQL 질의를 원본으로 하는 Recordset 작성할 때도 사용할 있습니다.

계산 함수

합계를 구하는 사용하는 Sum, Count, Avg, Var 등의 함수입니다. 식을 쓰거나 프로그래밍을 앞의 함수를 포함한 SQL 계산 함수나 도메인 계산 함수를 사용하여 다양한 통계값을 구할 있습니다.

QueryDef  도움말 파일 참조 (vb5.hlp 파일내의 SQL 계산함수 참조)

SQL 도움말 파일 참조

Recordset 도움말 파일 참조

 


 

Avg 함수

Count 함수

Min, Max 함수

StDev, StDevP 함수

Sum 함수

Var, VarP 함수

■■■■■■■■■■■

1. Avg 함수

의에서 지정 필드에 있는 값의 산술 평균을 구합니다.

구문  Avg(expr)

expr 평균을 구할 숫자 데이터가 있는 필드를 알려주는 문자열 또는 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 없음) 등을 포함할 있습니다.

참고 

Avg 함수로 계산한 평균은 수학적인 평균입니다.(, 합계를 값의 개수로 나눈 값입니다). 예를 들어, Avg 함수를 사용하여 평균 운송비를 계산할 있습니다.  Avg 함수는 계산 Null 필드를 제외합니다.

Avg 함수는 질의 QueryDef 개체의 SQL 속성에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 사용할 있습니다.

Avg 함수 예제

다음 예제는 Orders 테이블을 사용하여 수송료가 $100 넘는 주문에 대해 평균 수송료를 계산합니다.

다음 예제는 SELECT 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub AvgX()

         Dim dbs As Database, rst As Recordset

         Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

         ' 수송료가  $100가 넘는 주문에 대한 평균 수송료를 계산합니다. 

         Set rst = dbs.OpenRecordset("SELECT Avg(Freight)" & " AS [Average Freight]" _

                  & " FROM Orders WHERE Freight > 100;")

         rst.MoveLast    ' Recordset을 만듭니다.

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

         EnumFields rst, 25    ' Recordset 개체와 원하는 필드 너비를 전달합니다.

         dbs.Close

End Sub

2. Count 함수

질의가 반환하는 레코드 수를 계산합니다.

구문  Count(expr)

expr 개수를 데이터가 있는 필드를 나타내는 문자열 또는 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 없음) 등을 포함할 있습니다. 텍스트를 포함한 모든 형식의 데이터를 있습니다.

참고  Count 함수를 사용하여 원본으로 사용하는 질의의 레코드 수를 있습니다. 예를 들어, Count 함수를 사용하여 특정 국가로 운송할 주문서의 수를 있습니다.

expr 필드에서 계산을 수행하지만 Count 함수는 단순히 레코드 수만 셉니다. 레코드에 저장된 값과는 무관합니다.

Count 함수는 expr 별표(*) 대표 문자를 사용한 경우에만 Null 필드가 있는 레코드 수를 계산합니다. 별표를 사용하면 Count 함수는 Null 필드가 있는 레코드를 포함한 전체 레코드 수를 계산합니다. Count(*) 함수는 Count([Column Name]) 함수에 비해 수행 속도가 훨씬 빠릅니다. 별표를 작은 따옴표(' ') 안에 사용하지 마십시오.

다음 예제는 Orders 테이블의 레코드 수를 계산합니다.

   SELECT Count(*)

   AS TotalOrders FROM Orders;

expr 여러 필드를 확인하면, Count 함수는 적어도 하나의 필드가 Null 아닐 경우에만 레코드를 셉니다. 지정한 필드가 모두 Null 경우 레코드를 세지 않습니다. 필드 이름은 & 기호로 구분합니다. 다음 예제는 ShippedDate 또는 Freight Null 아닌 레코드만을 세도록 제한 하는 방법을 보여 줍니다.

SELECT

Count('ShippedDate & Freight')

AS [Not Null] FROM Orders;

질의 식에 Count 사용할 있습니다.  QueryDef 개체의 SQL 속성에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 식을 사용할 있습니다.

Count 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적된 주문수를 계산합니다.

다음 예제는 SELECT 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub CountX()

         Dim dbs As Database, rst As Recordset

         Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

         ' 영국으로 선적된 주문 수를 계산합니다.

         Set rst = dbs.OpenRecordset("SELECT" & " Count (ShipCountry)" _

                  & " AS [UK Orders] FROM Orders" & " WHERE ShipCountry = 'UK';")

         rst.MoveLast       ' Recordset을 만듭니다.

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 25

         dbs.Close

End Sub

3. Min, Max 함수

질의의 지정된 필드에 있는 최소값이나 최대값을 반환합니다.

구문  Min(expr)

      Max(expr)

expr 사용할 데이터가 있는 필드를 나타내는 문자열 또는 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 없음) 등을 포함할 있습니다.

참고  Min Max 사용하여 계산 또는 그룹화 필드의 최소값과 최대값을 구할 있습니다. 예를 들어, 함수를 사용하여 최저 운임과 최대 운임을 계산할 있습니다. 지정한 그룹이 없으면 전체 테이블을 사용합니다.

QueryDef 개체의 SQL 속성과 질의 식에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 Min Max 함수를 사용할 있습니다.

Min, Max 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대해 최저 수송료와 최고 수송료를 반환합니다.

다음 예제는 SELECT 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub MinMaxX()

         Dim dbs As Database, rst As Recordset

         ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

         Set dbs = OpenDatabase("Northwind.mdb")

         ' 영국으로 선적되는 주문에 대해 최저 수송료와

         ' 최고 수송료를 반환합니다.

         Set rst = dbs.OpenRecordset("SELECT " & "Min(Freight) AS [Low Freight], " _

                  & "Max(Freight)AS [High Freight] " & "FROM Orders WHERE ShipCountry = 'UK';")

         ' Recordset을 만듭니다.

rst.MoveLast

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

         ' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 12

         dbs.Close

End Sub

4. StDev, StDevP 함수

질의의 특정 필드에 포함된 값으로 모집단이나 모집단 표본에 대한 표준 편차의 결과를 반환합니다.

구문  StDev(expr)

      StDevP(expr)

expr 사용할 데이터가 있는 필드를 나타내는 문자열 또는 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 없음) 등을 포함할 있습니다.

참고

StDevP 함수는 모집단을 구하고 StDev 함수는 모집단 표본을 구합니다.

원본으로 사용하는 질의에 미만의 레코드가 있으면(또는 StDevP 함수의 경우, 레코드가 없을 ) Null 값을 반환합니다. 이는 표준 편차를 계산할 없음을 뜻합니다.

StDev StDevP 함수를 질의 식에 사용할 있습니다. QueryDef 개체의 SQL 속성에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 식을 사용할 있습니다.

StDev, StDevP 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대한 수송료의 표준 편차를 계산합니다.

다음 예제는 SELECT 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub StDevX()

         Dim dbs As Database, rst As Recordset

         Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

         ' 영구으로 선적되는 주문에 대한 수송료의 표준 편차를 계산합니다.

         Set rst = dbs.OpenRecordset("SELECT " & "StDev(Freight) " _

                  & "AS [Freight Deviation] FROM Orders " & "WHERE ShipCountry = 'UK';")

         ' Populate the Recordset.

         rst.MoveLast

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 15

         Debug.Print

         Set rst = dbs.OpenRecordset("SELECT " & "StDevP(Freight) " _

                  & "AS [Freight DevP] FROM Orders " & "WHERE ShipCountry = 'UK';")

         ' Recordset을 만듭니다.

         rst.MoveLast

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

         ' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 15

         dbs.Close

End Sub

5. Sum 함수

질의에서 지정 필드에 있는 일련의 값의 합계를 반환합니다.

구문  Sum(expr)

expr 사용할 데이터가 있는 필드를 나타내는 문자열 또는 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 없음) 등을 포함할 있습니다.

참고

Sum 함수는 필드에 있는 값의 합계를 구합니다. 예를 들어, Sum 함수를 사용하여 운송 비용을 구할 있습니다.

Sum 함수는 Null 필드가 있는 레코드를 무시합니다.

다음 예제는 UnitPrice Quantity 필드의 합계를 구하는 방법을 보여 줍니다.

SELECT

Sum(UnitPrice * Quantity)

AS [Total Revenue] FROM [Order Details];

Sum 함수를 질의 식에 사용할 있습니다. QueryDef 개체의 SQL 속성에 또는 SQL 질의에서 Recordset 개체를 작성할 식을 사용할 있습니다.

Sum 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대한 판매량을 계산합니다.

다음 예제는 SELECT 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub SumX()

         Dim dbs As Database, rst As Recordset

         Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

         ' 영국으로 선적되는 주문에 대한 총 판매량을 계산합니다.

         Set rst = dbs.OpenRecordset("SELECT" & " Sum(UnitPrice*Quantity)" _

                  & " AS [Total UK Sales] FROM Orders" & " INNER JOIN [Order Details] ON" _

                  & " Orders.OrderID = [Order Details].OrderID" & " WHERE (ShipCountry = 'UK');")

' Recordset을 만듭니다.

         rst.MoveLast

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

         ' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 15

         dbs.Close

End Sub

6. Var, VarP 함수

질의의 지정 필드에 포함된 일련의 값으로 모집단이나 모집단 표본에 대한 분산 결과를 반환합니다.

구문  Var(expr)

      VarP(expr)

expr 사용할 데이터가 있는 필드를 나타내는 문자열 식이나 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 없음) 등을 포함할 있습니다.

참고

VarP 함수는 모집단을 계산하고 Var 함수는 모집단 표본을 계산합니다.

원본 질의에 미만의 레코드가 있을 Var VarP 함수는 Nulldadefnull@JetDef35.hlp 반환합니다. 이는 분산을 계산할 없음을 뜻합니다. 질의 식이나 SQL 문에 Var VarP 함수를 사용할 있습니다.

Var, VarP 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대한 수송료의 분산를 계산합니다.

다음 예제는 SELECT 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub VarX()

         Dim dbs As Database, rst As Recordset

         Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

         ' 영국으로 선적되는 주문에 대한 수송료의 분산을 계산합니다.

         Set rst = dbs.OpenRecordset("SELECT " & "Var(Freight) " _

                  & "AS [UK Freight Variance] " & "FROM Orders WHERE ShipCountry = 'UK';")

         ' Recordset을 만듭니다.

         rst.MoveLast

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 20

         Debug.Print

         Set rst = dbs.OpenRecordset("SELECT " & "VarP(Freight) " _

                  & "AS [UK Freight VarianceP] " & "FROM Orders WHERE ShipCountry = 'UK';")

         ' Recordset을 만듭니다.

         rst.MoveLast

         ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

         ' Recordset 개체와 원하는 필드 너비를 전달합니다.

         EnumFields rst, 20

         dbs.Close

End Sub

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼