에너지 관점 스터디:에관스

컴활 1급 · Access 도메인 함수

DMax·DMin·DAvg는 조건 범위에서 최대·최소·평균 중 무엇을 구하는지만 먼저 고르면 됩니다

두음 암기는 `맥대·민소·애평`입니다. DMax는 최대, DMin은 최소, DAvg는 평균을 반환합니다.

재미 문장은 `맥 대장이 민소매를 입고 평균대를 걷는다`입니다. 시험장에서는 대·소·평 세 글자로 번역하고, 뒤에는 공통 인수 `식·도·조`를 붙이세요.

결론부터 말하면 세 함수의 구문은 모두 `함수(Expr, Domain, Criteria)`입니다. 구할 결과가 가장 큰 값이면 DMax, 가장 작은 값이면 DMin, 산술 평균이면 DAvg를 쓰고, Criteria에는 SQL WHERE에서 WHERE를 뺀 조건 문자열을 넣습니다.

컴활 1급 Access DMax DMin DAvg를 최대 최소 평균과 Expr Domain Criteria로 비교한 인포그래픽
DMax는 최대, DMin은 최소, DAvg는 평균을 구하며 세 함수 모두 Expr·Domain·Criteria 구조를 공유합니다.
작성에관스 컴활 1급 학습팀 발행2026년 8월 7일 수정2026년 8월 7일 주제Access 도메인 함수

핵심 포인트

이 글에서 먼저 챙길 것

  • DMax는 조건에 맞는 레코드 중 최댓값, DMin은 최솟값, DAvg는 평균을 반환합니다.
  • 세 함수 모두 Expr·Domain이 필수이고 Criteria는 선택 인수입니다.
  • Criteria를 생략하면 전체 Domain을 대상으로 계산합니다.
  • 문자 조건은 작은따옴표, 날짜 조건은 #, 숫자 조건은 값 그대로를 최종 문자열에 남깁니다.
  • 도메인 함수와 총계 쿼리의 Max·Min·Avg는 계산 시점과 쓰임이 다르므로 문제 지시문을 먼저 봅니다.

본문

컴활 1급 공부 기준을 더 구체적으로 보기

이 글이 필요한 사람

컴활 1급 데이터베이스 실기에서 DMax, DMin, DAvg가 보이면 함수 선택보다 따옴표와 조건식부터 세다가 막히는 사람에게 맞는 글입니다.

기존 `DLookup·DCount·DSum 차이` 글은 값 하나·개수·합계를 맡습니다. 이 글은 최댓값·최솟값·평균 선택과 Max·Min·Avg 총계 함수와의 경계만 담당합니다.

도메인 함수의 공통 인수 구조는 같지만 결과 의미는 다릅니다. 문제 문장의 `가장 큰`, `가장 작은`, `평균`을 먼저 표시하면 함수 이름을 빠르게 확정할 수 있습니다.

두음 암기부터 잡으세요: 맥대·민소·애평

`맥대`는 DMax가 최대, `민소`는 DMin이 최소, `애평`은 DAvg가 평균이라는 뜻입니다. 영어 이름과 결과를 한 쌍으로 붙인 암기입니다.

그 뒤에 `식도조`를 붙이세요. Expr은 계산할 필드·식, Domain은 테이블·쿼리, Criteria는 조건입니다. 최종 암기는 `맥대·민소·애평, 식도조`입니다.

함수 선택과 인수 해석을 한 번에 하지 마세요. 먼저 대·소·평으로 함수를 정하고, 그다음 무엇을·어디서·어떤 조건으로 계산할지 채우는 순서가 안정적입니다.

공통 구문은 Expr·Domain·Criteria입니다

Microsoft Learn의 공식 구문은 DMax, DMin, DAvg 모두 `expression.함수(Expr, Domain, Criteria)`입니다. Access 계산 컨트롤에서는 보통 `=DMax("[필드]", "테이블", "조건")` 같은 식으로 봅니다.

Expr은 최대·최소·평균을 계산할 필드나 계산식입니다. Domain은 계산 대상 레코드 집합인 테이블 또는 매개 변수가 필요 없는 쿼리 이름입니다.

Criteria는 계산할 레코드를 좁히는 선택 조건이며 SQL WHERE 절에서 WHERE를 뺀 형태입니다. Criteria를 생략하면 Expr을 Domain 전체 레코드에 대해 계산합니다.

DMax는 조건에 맞는 가장 큰 값을 찾습니다

DMax는 지정한 Domain에서 Criteria를 만족하는 레코드의 Expr 최댓값을 반환합니다. 예를 들어 서울 지역의 최고 판매액은 `=DMax("[판매액]", "판매", "[지역] = '서울'")`처럼 만들 수 있습니다.

Microsoft Learn은 숫자 Expr이면 숫자 최댓값을 반환하고, 문자 Expr이면 알파벳 정렬상 마지막 값을 반환할 수 있다고 설명합니다. 컴활 문제에서는 지시문이 요구한 필드 자료형과 결과를 함께 확인하세요.

최신 날짜를 찾는 문제도 날짜 필드의 최댓값이라는 관점으로 DMax를 사용할 수 있습니다. 다만 Criteria의 날짜값을 비교할 때는 날짜 구분 기호 #을 정확히 둡니다.

DMin은 조건에 맞는 가장 작은 값을 찾습니다

DMin은 지정한 Domain에서 Criteria를 만족하는 레코드의 Expr 최솟값을 반환합니다. 특정 분류의 최저 가격, 가장 이른 날짜, 최소 배송비 같은 지시문에서 먼저 봅니다.

예를 들어 A등급 상품의 최저 단가는 `=DMin("[단가]", "상품", "[등급] = 'A'")`처럼 구성할 수 있습니다. DMax와 인수 자리는 같고 결과 방향만 반대입니다.

문제에 `최소`, `가장 낮은`, `가장 이른` 같은 표현이 나오면 DMin 후보를 표시하세요. 날짜에서는 이른 날짜가 작은 날짜값이라는 점까지 연결하면 선택이 빨라집니다.

DAvg는 조건 범위의 산술 평균을 구합니다

DAvg는 지정한 Domain에서 Criteria를 만족하는 레코드의 숫자 Expr 평균을 계산합니다. 예를 들어 영업부의 평균 실적은 `=DAvg("[실적]", "사원", "[부서] = '영업부'")`처럼 만들 수 있습니다.

Microsoft Learn에 따르면 평균 대상 필드의 Null 값이 들어 있는 레코드는 평균 계산에 포함되지 않습니다. Null을 0점으로 간주해 분모에 넣는 계산과는 결과가 다를 수 있습니다.

DAvg는 평균값을 보여 주는 계산 컨트롤이나 평균보다 큰 레코드를 찾는 쿼리 조건에도 사용할 수 있습니다. 문제의 결과 위치가 컨트롤인지 쿼리 조건인지 먼저 확인하세요.

숫자·문자·날짜 조건은 최종 문자열로 검토합니다

숫자 조건은 `"[부서코드] = 7"`처럼 숫자값에 별도 따옴표를 붙이지 않습니다. 폼 컨트롤 값을 붙이면 `"[부서코드] = " & Me!txt부서코드`처럼 문자열 밖에서 연결합니다.

문자 조건은 최종 값이 작은따옴표 안에 있어야 합니다. `"[지역] = '서울'"` 또는 `"[지역] = '" & Me!txt지역 & "'"`처럼 최종 결과가 `[지역] = '서울'`로 읽혀야 합니다.

날짜 조건은 #으로 감쌉니다. `"[주문일] >= #" & Me!txt기준일 & "#"`처럼 만든 뒤 최종 문자열에 날짜 앞뒤 #이 남는지 확인하세요.

DMax·DMin·DAvg와 Max·Min·Avg의 쓰임을 나누세요

D가 붙은 함수는 Domain과 Criteria를 직접 지정해 다른 테이블·쿼리의 조건 범위를 계산할 수 있습니다. 계산 컨트롤이나 쿼리 식에서 별도 도메인을 참조할 때 유용합니다.

Microsoft Learn은 총계 쿼리에서 DMax·DMin·DAvg를 쓰면 그룹화 전에 값이 평가되고, Max·Min·Avg를 쓰면 데이터가 그룹화된 뒤 필드 식의 값이 계산된다고 설명합니다.

단순히 현재 총계 그룹의 최대·최소·평균을 구하라는 문제라면 Max·Min·Avg가 자연스러울 수 있습니다. 별도 테이블·조건 범위를 직접 지정해야 한다면 D 함수 구조를 먼저 봅니다.

Null과 조건 없음은 숫자 0과 다릅니다

Microsoft Learn에 따르면 DMax와 DMin은 Expr의 Null 값을 무시하며, 조건에 맞는 레코드가 없거나 Domain이 비어 있으면 Null을 반환합니다. DAvg도 평균 대상의 Null 레코드를 계산에서 제외합니다.

화면에서 값이 없을 때 0을 표시해야 한다면 `Nz(DMax(...), 0)` 같은 처리를 검토할 수 있습니다. 하지만 값 없음과 실제 숫자 0이 같은 의미인지 지시문을 먼저 확인해야 합니다.

예상과 다르게 Null이 나오면 함수부터 바꾸지 마세요. Criteria 필드가 Domain에 있는지, 실제 일치 레코드가 있는지, 문자·날짜 구분 기호가 맞는지 순서대로 확인합니다.

시험 직전에는 오류 제거 순서를 6줄로 남기세요

첫째, 두음은 `맥대·민소·애평`입니다. 둘째, 공통 인수는 `식도조`, Expr·Domain·Criteria입니다. 셋째, Criteria는 WHERE 없는 조건 문자열입니다.

넷째, 숫자는 그대로, 문자는 작은따옴표, 날짜는 #입니다. 다섯째, Criteria를 생략하면 Domain 전체를 계산합니다. 여섯째, 결과 없음과 Null은 숫자 0과 다릅니다.

마지막으로 문제 문장에서 가장 큰·가장 작은·평균을 먼저 표시하고, 식도조 세 칸을 채운 뒤 최종 Criteria 문자열을 읽어 보세요. 함수 이름과 따옴표를 동시에 고민하는 시간을 줄일 수 있습니다.

FAQ

자주 묻는 질문

DMax, DMin, DAvg의 차이는 무엇인가요?

DMax는 조건에 맞는 최댓값, DMin은 최솟값, DAvg는 숫자값의 평균을 반환합니다. 세 함수 모두 Expr·Domain·Criteria 구조를 공유합니다.

DMax의 Criteria를 생략하면 어떻게 되나요?

지정한 Domain의 전체 레코드를 대상으로 Expr의 최댓값을 구합니다. DMin과 DAvg도 Criteria를 생략하면 전체 Domain을 계산합니다.

DAvg는 Null 값을 평균에 포함하나요?

Microsoft Learn 기준으로 평균 대상 필드가 Null인 레코드는 DAvg 평균 계산에 포함되지 않습니다. Null을 0으로 계산하는 것과는 다릅니다.

DMax와 Max 함수는 무엇이 다른가요?

DMax는 Domain과 Criteria를 직접 지정하는 도메인 함수입니다. Max는 보통 총계 쿼리나 현재 레코드 집합의 그룹 계산에 사용합니다. 문제의 계산 범위와 그룹화 시점을 보고 선택합니다.