For applications that have a graphical user interface for displaying multidimensional schemas and datasets, drill down and drill up operations are commonly exposed in the UI. Drilling operations can take place on a per-member basis or on a per-level basis. For example, “Take the set {USA, France}, and give me a set that contains USA, France, and all the children of USA” drills down by member. On the other hand, “Take the set {USA, France} and give me a set that contains USA, France, and all the cities in USA” drills down by level. Any of these drilling operations can be combined with a top or a bottom condition. For example, “Take the set {USA, France}, and give me a set that contains USA, France, and the top 3 children of USA based on Sales.”
MDX has a rich set of set functions that encapsulate these UI operations.