### About the Series ...

This is the twentieth article of the series, **MDX
Essentials**. The series is designed to provide hands-on application of the
fundamentals of the** Multidimensional Expressions (MDX) **language, with
each tutorial progressively adding features designed to meet specific
real-world needs.

For more information about the series in general, as well as
the software and systems requirements needed for getting the most out of the
lessons included, please see the first article, *MDX at First Glance: Introduction to MDX Essentials**.*

** Note: Service Pack 3** updates are assumed for

**MSSQL Server 2000**,

**MSSQL Server 2000 Analysis Services**, and the related

**and**

*Books Online***.**

*Samples*### What We Accomplished in our Last Article

In the
last article of the series, ** Subset
Functions: The Head() Function**, we
introduced the

**Head()**function, whose general purpose is to return a specified number of elements from the beginning of a set, preserving natural order. We commented upon the operation of the function, and then examined its syntax. Next, we undertook practice examples with the function, based upon hypothetical business requirements. Our practice included the creation of queries to meet illustrative business needs, as well as demonstrations of the manner in which the

**Head()**function handles various numeric expression input scenarios. Throughout the practice examples, we briefly discussed the results datasets we obtained with regard to the

**Head()**function, together with other surrounding considerations.

### Introduction

In
this lesson, we continue a "triptych" of articles that expose set
functions that deal specifically with subsets - that is, each function returns
a subset of a larger set as part of its operation. Having covered the **Head()**
function in the previous article, we will introduce the **Tail()** function
in this article, then follow it with the **Subset()** function in the next
article. As we mentioned in our last session, these three functions have much
in common with regard to usage and operation; covering them in close proximity
will allow us to more finely distinguish among them, to exploit the attributes
we can leverage to meet specific business needs.

The
general purpose of the **Tail()** function is to return the last *specified
number* of elements in a set. We will introduce the **Tail()**
function, commenting upon its operation, and then we will:

- Examine the syntax surrounding the function;
- Undertake illustrative examples of the uses of the function in practice exercises;
- Briefly discuss of the results datasets we obtain in the practice examples.