Ya sabemos que la función TOPN va a devolver las n filas “superiores” de una tabla, por lo que podríamos obtener fácilmente la fila de la tabla Geography correspondiente a la ciudad con mayores ventas. Aunque el objetivo es crear una medida -por motivos estrictamente pedagógicos- vamos a crear la tabla intermedia como tabla calculada para que podamos ver el resultado parcial:
TOPN(
1,
Geography,
[Sales]
)
En este caso, cada fila de Geography representa una ciudad, por lo que hemos podido iterar directamente dicha tabla sin extraer los valores distintos de la columna que nos interesase con VALUES o con DISTINCT. El resultado de la tabla calculada es el siguiente:
Ya sabemos que la ciudad es Lyon. Ahora ¿cómo extraemos el nombre de la ciudad (y solo el nombre)? Una posible forma es trabajando en contexto de fila pues, en dicho contexto, podemos acceder directamente a los valores de los campos. Es decir, en nuestra medida tendremos que usar alguna función que recorra esta tabla fila por fila (y solo hay una fila) y nos extraiga el campo que nos interesa. ¿Y qué función podemos usar? Pues, teniendo en cuenta que solo hay una fila, servirían varias funciones. Por ejemplo, MAXX y MINX (el valor máximo de la columna City es “Lyon”, al igual que el valor mínimo de dicha columna, que también es “Lyon”). Es decir, nuestra medida (a la que podemos llamar igual que la tabla calculada que hemos creado, “Max Sales City”) tendría el siguiente aspecto:
VAR __citySales =
TOPN(
1,
Geography,
[Sales]
)
RETURN
MAXX(
__citySales,
[City]
)
Lo primero que hemos hecho ha sido crear una variable (__citySales) conteniendo una tabla con la ciudad de mayores ventas. A continuación, la recorremos y extraemos el valor máximo (y único) de la columna City. Nuestra medida llevada a una tarjeta devuelve el siguiente resultado: