Este escenario es continuación de Identificación de los clientes con mayor facturación. El objetivo ahora es obtener -también como función de consulta- las ventas realizadas a los n clientes con mayor facturación.
En aquel escenario terminábamos con la siguiente consulta:
let
GroupedRows = Table.Group(
Sales,
"Customer Id",
{
{"Total Sales", each List.Sum([Amount]), type number}
}
),
SortedRows = Table.Sort(
GroupedRows,
{
{"Total Sales", Order.Descending}
}
),
TopNRows = Table.FirstN(SortedRows, numberOfCustomers)
in
TopNRows
El resultado-una vez invocada la función- era una tabla con dos columnas: El identificador del cliente y las ventas de dicho cliente. Por ejemplo, si invocábamos la función pasando el número 3 como argumento, la tabla obtenida era la siguiente:
Si duplicamos la consulta y damos a la nueva un nombre apropiado (SalesTopCustomers, por ejemplo), tendríamos que añadir un paso que sume la columna Total Sales, para lo que basta con usar la función Table.Column para seleccionar la columna, y List.Sum nuevamente, para sumarla. Es decir:
let
GroupedRows = Table.Group(
Sales,
"Customer Id",
{
{"Total Sales", each List.Sum([Amount]), type number}
}
),
SortedRows = Table.Sort(
GroupedRows,
{
{"Total Sales", Order.Descending}
}
),
TopNRows = Table.FirstN(SortedRows, numberOfCustomers),
SalesTopNRows = Table.Column(TopNRows, "Total Sales"),
TotalSales = List.Sum(SalesTopNRows)
in
TotalSales
Si invocamos la función pasando 3 como argumento, el resultado es el siguiente: