Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space Source and version Master

...

Sv translation
languagede

Die GoodData-Plattform kombiniert die Möglichkeiten hochgradig benutzerdefinierbarer und verständlicher Dashboards basierend auf unserer leistungsstarken Sprache MAQL (Multi-dimensional analytical query language).

Inhalt:

Table of Contents

Die GoodData Extensible Analytics Engine

Die Extensible Analytics Engine nutzt unsere patentierte MAQL/XAE-Sprache. Diese bietet kontextabhängige Metrikdimensionalitäten und ermöglicht dem Benutzer die Anwendung von Metriken auf vielfältige Situationen, ohne die Metrikdefinition zu ändern. Sie können sogar Metriken ineinander verschachteln, um komplexere KPIs zu erstellen.

Der Vorteil der GoodData-Plattform wird offensichtlich, wenn Sie beginnen, Daten zu bearbeiten, ohne das zugrunde liegende physische Datenmodell zu beeinflussen. Die logischen Datenmodelle von GoodData abstrahieren von der Komplexität eines physischen Datenmodells. Sie ermöglichen dem Benutzer, sich auf geschäftliche Anwendungsfälle und weniger auf die Art und Weise der Speicherung der Projektdaten zu konzentrieren.

Mit der neuen Architektur und den brandneuen Funktionen erweist sich XAE als besonders wertvoll für Berichte. Es können komplexere Anwendungsfälle bearbeitet und die bestehenden optimiert werden. Die am weitesten entwickelte Form ermöglicht bessere Abfrageoptimierung sowie Ausführung und mehr.

Eine Reihe neuer Möglichkeiten von XAE verdanken wir der Rückmeldung von unseren Geschäftsanwendern. Ausnahmeberichte (komfortables NULL -Handling), erweiterte Rangfolgeermittlung (einschließlich Rangfolge in Prozent, Rangfolgeermittlung (einschließlich Rangfolge innerhalb von Gruppen usw.) und komplexe bedingte Berichte (IF-ELSE und CASE) werden dank der neuen XAE möglich. Überdies stellen wir neue Aggregationsfunktionen zu laufenden Summen vor, die kumulative Aggregationen eines Produktfakts ergeben und in Tabellen sowie Diagramme eingefügt werden oder in anderen Metriken verschachtelt sein können.

Die XAE wurde zur Rationalisierung der Art und Weise entwickelt, in der Organisationen bei der täglichen Arbeit analysieren und datengesteuerte Entscheidungen treffen. 

Absolutwert, Signum und Quadratwurzel

ABS( )

Beschreibung
Ergibt den Absolutwert einer Zahl. Negative Werte werden positiv zurückgegeben. Positive Werte sind unverändert.

Syntax
SELECT ABS(number)
SELECT ABS(metric)

Beispiele
SELECT ABS(-5)
…ergibt den Wert „5“

SELECT ABS(10)
…ergibt den Wert „10“

SELECT ABS((Total_Amount)-(SELECT Total_Amount WITHOUT PF))

SIGN( )

Beschreibung
Die Signumfunktion ergibt das Vorzeichen einer Zahl. Wenn die Zahl positiv ist, ergibt die Funktion 1. Ist die Zahl negativ, ergibt die Funktion -1. Ist die Zahl null, ergibt die Funktion 0.

Syntax
SELECT SIGN(number)
SELECT SIGN(metric)

Beispiele
SELECT SIGN(-3.87)
…ergibt den Wert -1

SELECT SIGN(33)
…ergibt den Wert 1

SELECT SIGN(0)
…ergibt den Wert 0

SQRT( )

Beschreibung
Die Quadratwurzelfunktion ergibt die Quadratwurzel einer Zahl oder eines metrischen Eingabewerts. Negative oder komplexe Eingaben ergeben den Ausgabewert NULL.

Syntax
SELECT SQRT(number)
SELECT SQRT(metric)

Beispiele
SELECT SQRT(25)
…ergibt den Wert „5“

SELECT SQRT(33.6)
…ergibt den Wert „5.796550698“

SELECT SQRT(SELECT SUM(Sales))
…ergibt die Quadratwurzel der Metrik Total Sales (Gesamtumsatz)

Laufende Summen

Früher konnten laufende Summen über das Rechtsklick-Kontextmenü zu GoodData-Tabellen hinzugefügt werden. Dadurch entstand eine neue Spalte rechts neben dem Original, in der die Zellen der ausgewählten Spalte automatisch addiert wurden. Auf die eigentliche Metrik zur Berechnung der Spaltenwerte bestand jedoch kein Zugriff.

Jetzt stehen Ihnen die Funktionen RUNSUM, RUNAVG, RUNMIN und RUNMAX in MAQL zur Verfügung, Mit ihnen können Sie Laufende-Summen-Metriken erstellen, die in anderen Metriken wiederverwendet werden und dort mit anderen MAQL-Funktionen bearbeitet oder zu einer beliebigen Anzahl anderer Berichte hinzugefügt werden können.

RUNSUM / RUNAVG / RUNMIN / RUNMAX

Beschreibung
Ergibt die laufende Summe eines Projektfakts. In einer nach Datumsattribut aufgeschlüsselten Tabelle würde der Wert der laufenden Summe an einem bestimmten Tag durch Aggregation der Werte aller vorherigen Tage zusammen mit demjenigen des aktuellen Tages berechnet.

Syntax
RUNSUM(fact)
RUNAVG(fact)
RUNMIN(fact)
RUNMAX(fact)
RUNSUM(metric)
RUNAVG(metric)
RUNMIN(metric)
RUNMAX(metric)

Beispiele
SELECT RUNSUM(Sales)

SELECT RUNAVG(Leads) WHERE Year={ this }
SELECT RUNMIN(Probability) WHERE Amount > 500000
SELECT RUNMAX(Opportunities) BY Quarter/Year
SELECT RUNSUM(Won Opportunities) WITHOUT PARENT FILTER
Note

Die derzeitige Einschränkung besteht darin, dass die Dimensionalität nur ein (und genau) ein Datums-/Zeitattribut sein kann.

Bedingte Anweisungen

Bedingungs-Statements

IF THEN ELSE

Beschreibung
IF THEN ELSE Anweisungen ergeben einen von zwei möglichen Werten oder führen eine von zwei möglichen Berechnungen aus, je nachdem, ob eine bestimmte Bedingung erfüllt ist. Die Bedingung, die erfüllt sein muss, folgt dem Schlüsselwort IF und kann mithilfe eines beliebigen Filterschlüsselworts oder relationaler Operatoren (IN, NOT IN, BETWEEN, NOT BETWEEN, =, < , <=, >, >=, <>) konstruiert werden.

Das erste mögliche Ergebnis folgt auf das Schlüsselwort THEN und das zweite mögliche Ergebnis folgt auf das Schlüsselwort ELSE. Die zurückgegebenen Ergebnisse können numerische Werte oder Rechenoperationen sein. Alle All IF THEN ELSE-Anweisungen enden mit dem Schlüsselwort END.

Note

Bei drei oder mehr Bedingungen (zusätzlich zu einer else-Anweisung) verwenden Sie die nachstehend beschriebene Anweisung CASE.

Syntax 

SELECT IF … THEN … ELSE … END
SELECT IF condition THEN number ELSE number END
SELECT IF condition THEN arithmetic_operation ELSE arithmetic_operation END

Beispiele
SELECT IF SUM(Amount) >= AVG(Amount) THEN 10 ELSE 0 END
SELECT IF SUM(Duration) - AVG(Duration) > 2000  THEN 0 ELSE 1 END
SELECT IF AVG(Probability) > 0.5 THEN SUM(Amount) * 10 ELSE SUM(Amount) / 10 END

CASE

Beschreibung
CASE wird für komplexe bedingte Ausdrücke verwendet, die drei oder mehr Bedingungen enthalten. Hinter dem Schlüsselwort CASE folgen jeweils Bedingungen und Ergebnisse auf WHEN und THEN. Ist keine der WHEN -Bedingungen erfüllt, wird das Ergebnis hinter ELSE zurückgegeben. Die Ergebnisse können numerische Werte oder Rechenoperationen sein. Alle CASE-Anweisungen enden mit dem Schlüsselwort END.

Syntax
SELECT CASE WHEN … THEN …, WHEN… THEN… ELSE… END
SELECT CASE WHEN condition1 THEN outcome1, WHEN condition2 THEN outcome2 ELSE outcome3 END

Beispiele

Code Block
languagetext
SELECT CASE WHEN ACTIVITY_TYPE IN(Email,Web_Meeting) THEN 1, 
WHEN ACTIVITY_TYPE IN(Phone_Call,In_Person_Meeting) THEN 2 
ELSE 0 END
Code Block
languagetext
SELECT CASE WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) > 100000 THEN 2, 
WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) < 100000 THEN 1 
ELSE 0 END

IFNULL

Beschreibung
Mit IFNULL können Sie festlegen, wie die GoodData-Plattform vorgeht, wenn ein Metrikausdruck (Metrik, Faktaggregation oder Rechenoperation) fehlende Werte ergibt. Sollte ein Metrikausdruck innerhalb einer IFNULL-Anweisung einmal einen Nullwert ergeben, wird der im zweiten Parameter der Funktion IFNULL angegebene Ersatzwert anstelle des Nullwerts eingefügt.
IFNULL ist besonders nützlich, wenn eine andere Metrikdefinition auf eine Untermetrik verweist. Die Untermetrik in eine IFNULL-Anweisung einzufügen, verhindert, dass die enthaltende Metrik null wird, weil eine ihrer Komponenten einen Nullwert ergibt.

Note

Wenn Sie eine Metrik als Ersatzwert verwenden, wird dieser Bericht aufgrund einer falschen Metrikdefinition unberechenbar.

Syntax
SELECT IFNULL(…,…)
SELECT IFNULL(metric_expression,replacement_value)

Beispiele
SELECT IFNULL(SUM(Amount), 0)
SELECT IFNULL(SUM(FB_Cost + TW_Cost), 0)
SELECT IFNULL(SUM(Amount) + 100, 1)
SELECT IFNULL((SELECT SUM(Payments)
       WHERE Product IN (Explorer, Educational)), 0)

Rangfolgefunktionen

XAE unterstützt jetzt die Funktion RANK zusätzlich zur grundlegenden TOP(n) und BOTTOM(n) Rangfolgebestimmung (z. B. TOP(5) Handelsvertreter).

In Kombination mit den verschiedenen Formen der WITHIN-Anweisung können Sie mit RANK Werten in Untergruppen, die den Attributwerten eines Berichts zugeordnet sind, einen Rang zuweisen. Die ist nützlich zur Rangfolgebestimmung der 5 besten Handelsvertreter in jeder Region in einem Bericht über die Daten der Handelsvertreter in allen Verkaufsregionen.

In Verbindung mit verschiedenen Formen von WITHIN-Anweisungen kann RANK für folgende Aktionen verwendet werden:

  • Dichte Rangfolgebestimmung
  • Rangfolgebestimmung in Prozent
  • Kumulative Verteilung

Wenn Sie RANK ohne eine begleitende WITHIN-Anweisung (z. B. SELECT RANK(Avg. Won) verwenden, bestimmt die Funktion die Rangfolge aller Metrikwerte über die Berichtsreihen hinweg. Dies ergibt eine identische Ausgabe als RANK(...) WITHIN(ALL IN ALL OTHER DIMENSIONS). Hängt man die Anweisung WITHIN an eine RANK-Funktion an, kann sie in Verbindung mit einer von zwei Parameterformulierungen verwendet werden, die verschiedene Ausgaben ergeben. Diese werden in der folgenden Tabelle untersucht.

WITHINAusgabe
WITHIN ( attr, …, ALL attr, … ALL OTHER EXCEPT … )Rangfolgen in Untergruppen, die mit dem im Parameter der Anweisung WITHIN enthaltenen Attribut angegeben werden.
Rangfolgen innerhalb von Clustern aktueller Dimensionalität, die mit angegebenen Regeln geändert werden, d. h. Rangfolgebestimmung in einer Gruppe. Einhaltung der in HOW angegebenen Berichtsdimensionalität. Hier kann eine beliebige Anweisung verwendet werden, die in der Klausel BY enthalten sein kann.
WITHIN (CURRENT)Rangfolgen innerhalb der aktuellen Dimensionalität ignorieren die Berichtsdimensionalität von HOW. Jede Berichtszeile wird als separate Gruppe behandelt. Daher liefert die Rangfolgemetrik nur einen Wert, in diesem Fall 1, als Ergebnis aller Zeilen. Bei TOP/BOTTOM-Rangfolgebestimmung von geringem Nutzen.

Die vollständige Syntax der Funktion RANK ist im folgenden Text beschrieben.

RANK

Beschreibung
Die Rangfolgefunktion ergibt einen numerischen Rangfolgewert für jeden der Metrikwerte eines Berichts in aufsteigender [ASC] Reihenfolge (kleinster Wert an erster Stelle) oder absteigender [DESC] Reihenfolge (größter Wert an erster Stelle). Die absteigende Reihenfolge ist Standard für Fälle, in denen eine Reihenfolge nicht ausdrücklich angegeben ist.
Ein Schlüsselmerkmal der Funktion RANK ist das Schlüsselwort WITHIN. Es ermöglicht Ihnen, die Rangfolge von mehreren Attributsuntergruppen in einem einzelnen Bericht zu bestimmen.

Syntax
SELECT RANK(…) [ASC|DESC] [WITHIN(…)]

SELECT RANK(metric)
SELECT RANK(metric) WITHIN( CURRENT )
SELECT RANK(metric) WITHIN( Attribute_1, Attribute_2, [...] )
SELECT RANK(metric)WITHIN( any BY statement )

Beispiele
SELECT RANK(Avg. Won)
SELECT RANK(Amount) ASC WITHIN(Year(Closed))
SELECT RANK(Amount[SUM])WITHIN(CURRENT)
SELECT RANK(Amount[SUM])WITHIN(ALL OTHER)

Wie bei RANK, können auch die Rangfolgefunktionen TOP und BOTTOM ohne eine WITHIN-Anweisung für Rangfolgebestimmungen verwendet werden, bei denen die Untergruppen eines Berichts unberücksichtigt bleiben. Durch Anhängen von Formulierungen von WITHIN an TOP und BOTTOM werden Rangfolgebestimmungen ermöglicht, bei denen nur die n höchsten oder niedrigsten Werte in jeder Untergruppe in der abschließenden Berichtsausgabe berücksichtigt werden.

WHERE TOP|BOTTOM (n) IN

Beschreibung
Diese TOP und BOTTOM Ränge stellen eine spezielle Version der Rangfolgebestimmungsfunktionen dar. Hierbei wird die Rangfolge bestimmt und das Ergebnis einer bestimmten Metrik basierend auf den Schlüsselwörtern TOP oder BOTTOM gefiltert. Die Syntax erfordert ein SELECT-Schlüsselwort vor der auf IN folgenden Metrik. Dabei wird die Rangfolgemetrik als Unterbericht interpretiert.

Note

Unterstützt jetzt Prozentparameter anstatt n.

Syntax
SELECT … WHERE TOP(…) IN … WITHIN …
SELECT metric1 WHERE TOP(n) IN (SELECT Metric2 BY A1, A2...) WITHIN (...)

Beispiele
SELECT Amount WHERE TOP(5) IN (SELECT Avg. Won BY Product)

Wir unterstützen jedoch ebenfalls das Schlüsselwort OF anstatt IN. Damit wird die Syntax einfacher und die Anwendbarkeit verbessert. Der Unterschied liegt auch in der Art und Weise, in der die Metriken in der Backend-Infrastruktur interpretiert werden. Das OF ermöglicht die Rangfolgebestimmung nach mehr als einer Metrik und interpretiert die Metrik als Untermetrik im Gegensatz zu IN, das ein SELECT erfordert und die Rangefolgebestimmungsmetrik als Unterbericht interpretiert.

WHERE TOP|BOTTOM (n) OF

Beschreibung
Diese TOP und BOTTOM Ränge stellen eine spezielle Version der Rangfolgebestimmungsfunktionen dar. Hierbei wird die Rangfolge bestimmt und das Ergebnis einer bestimmten Metrik basierend auf den Schlüsselwörtern TOP oder BOTTOM gefiltert. Ermöglicht die Rangfolgebestimmung von mehr als einer Metrik und interpretiert „die Metrik“ als Untermetrik.

Syntax
SELECT … WHERE TOP(…) OF … [WITHIN …]
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... )
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... ) WITHIN ( ... )

Beispiele
SELECT Amount WHERE TOP(5) OF (Avg. Won)
SELECT Won WHERE TOP(10) OF (Won) WITHIN(Region)

SELECT Amount WHERE BOTTOM(5) OF (Lost) 
                            WITHIN(Region, Year (closed))

WHERE TOP|BOTTOM (n%) OF

Beschreibung
Die prozentualen Rangfolgen ähneln allen anderen mit TOP und BOTTOM, verwenden jedoch das %-Zeichen zur Angabe des die Rangfolge bestimmenden TOP|BOTTOM-Parameters n.

Syntax
SELECT … WHERE [TOP|BOTTOM](n%)
SELECT metric1 WHERE [TOP|BOTTOM](n%)

Beispiele
SELECT Amount WHERE TOP(5%) OF (Amount) AND Product=Explorer
SELECT RANK(Top 5% parent) WHERE TOP(50%) OF (Top 5% parent)

Sv translation
languagees

La plataforma GoodData aúna la eficacia de los paneles, sumamente personalizables y de fácil comprensión, y que se basan en nuestro eficaz lenguaje de consultas multidimensional.

Contenido:

Table of Contents

El Motor de análisis ampliable de GoodData

El Motor de análisis ampliable saca partido a nuestro lenguaje MAQL/XAE, que ofrece dimensionalidades de métrica dependientes del contexto, lo que permite a los usuarios aplicar métricas en muchos contextos sin cambiar la definición de la métrica en cuestión. Incluso puede anidar una métrica en otra para generar KPI más complejos.

La ventaja de la plataforma GoodData es evidente cuando se empiezan a manipular datos sin que dicha manipulación tenga ningún efecto en el modelo físico de datos subyacente. Los modelos lógicos de datos de GoodData resumen las complejidades de un modelo físico de datos, lo que permite a los usuarios centrarse en casos de uso comerciales, en lugar de centrarse en cómo se almacenan los datos de un proyecto.

Con la nueva arquitectura y las características completamente nuevas, XAE proporciona más valor para crear informes, aborda casos de uso más complejos y mejora los ya existentes. En su forma más avanzada incluye, entre otras funciones, la optimización y la mejora de las consultas.

Algunas de las nuevas características de XAE son debidas a los comentarios de nuestros usuarios profesionales. El nuevo XAE permite la creación de informes de excepción (tratamiento cómodo de NULL), la clasificación avanzada (incluida la clasificación por porcentajes, la clasificación dentro del grupo, etc.) e informes condicionales complejos (IF-ELSE y CASE). Presentamos también nuevas funciones de agregación para el total acumulado que devuelven agregaciones acumuladas del hecho de un producto y que se pueden introducir en tablas, gráficos, o anidarse dentro de otras métricas.

El XAE se ha diseñado para ayudar a optimizar la forma en que las organizaciones analizan y toman decisiones basándose en los datos del día a día. 

Valor absoluto, signo y raíz cuadrada

ABS( )

Descripción
Devuelve el valor absoluto de un número. Los valores negativos se devuelven como positivos. Los valores positivos permanecen sin cambios.

Sintaxis
SELECT ABS(número)
SELECT ABS(métrica)

Ejemplos
SELECT ABS(-5)
…devuelve el valor “5”

SELECT ABS(10)
…devuelve el valor “10”

SELECT ABS((Total_Amount)-(SELECT Total_Amount WITHOUT PF))

SIGN( )

Descripción
La función Signo devuelve el signo de un número. Si el número es positivo, el signo devuelve 1. Si el número es negativo, el signo devuelve -1. Si el número es cero, el signo devuelve 0.

Sintaxis
SELECT SIGN(número)
SELECT SIGN(métrica)

Ejemplos
SELECT SIGN(-3.87)
…devuelve el valor -1

SELECT SIGN(33)
…devuelve el valor 1

SELECT SIGN(0)
…devuelve el valor 0

SQRT( )

Descripción
La función de raíz cuadrada devuelve la raíz cuadrada de un número o una entrada de métrica. Las entradas negativas o complejas dan como resultado una salida NULL.

Sintaxis
SELECT SQRT(número)
SELECT SQRT(métrica)

Ejemplos
SELECT SQRT(25)
…devuelve el valor “5”

SELECT SQRT(33.6)
…devuelve el valor “5.796550698”

SELECT SQRT(SELECT SUM(Sales))
…devuelve la raíz cuadrada de la métrica Total Sales

Totales acumulados

Anteriormente, los totales acumulados podían agregarse a las tablas de GoodData mediante el menú contextual con el que se accede con el botón secundario. Se creaba así una columna nueva a la derecha de la original que ofrecía automáticamente un total de las celdas de la columna seleccionada. No se podía tener acceso, sin embargo, a la métrica real que se utilizaba para calcular los valores de la columna.

Ahora puede utilizar las funciones RUNSUM, RUNAVG, RUNMIN y RUNMAX en MAQL para crear métricas de totales acumulados que se puedan volver a utilizar en otras métricas, donde se pueden manipular con otras funciones MAQL, o agregarse a otros informes.

RUNSUM / RUNAVG / RUNMIN / RUNMAX

Descripción
Toma el total acumulado del hecho de un proyecto. En una tabla desglosada según un atributo de fecha, el valor total en cualquier día dado se calcula agregando valores de todos los días anteriores junto con el del día actual.

Sintaxis
RUNSUM(hecho)
RUNAVG(hecho)
RUNMIN(hecho)
RUNMAX(hecho)
RUNSUM(métrica)
RUNAVG(métrica)
RUNMIN(métrica)
RUNMAX(métrica)

Ejemplos
SELECT RUNSUM(Sales)

SELECT RUNAVG(Leads) WHERE Year={ this }
SELECT RUNMIN(Probability) WHERE Amount > 500000
SELECT RUNMAX(Opportunities) BY Quarter/Year
SELECT RUNSUM(Won Opportunities) WITHOUT PARENT FILTER
Note

La limitación actual es que la dimensionalidad solo puede ser (y exactamente) un atributo de fecha/hora.

Instrucciones condicionales

IF THEN ELSE

Descripción
Las instrucciones IF THEN ELSEdevuelven uno de dos valores posibles, o realizan uno de dos posibles cálculos, dependiendo de si se cumple alguna condición. La condición que se debe cumplir sigue la palabra clave IF y se puede construir usando cualquiera de las palabras clave de filtrado u operadores relacionales (IN, NOT IN, BETWEEN, NOT BETWEEN, =, < , <=, >, >= <>).

El primer resultado posible sigue a la palabra clave THEN y el segundo resultado posible sigue a la palabra clave ELSE. Los resultados que se devuelven pueden ser valores numéricos u operaciones aritméticas. Las Todas las instrucciones All IF THEN ELSE concluyen con la palabra clave END.

Note

Si se deben definir tres o más condiciones, (además de una instrucción else), utilice la instrucción CASE descrita a continuación.

Sintaxis 

SELECT IF … THEN … ELSE … END
SELECT IF condición THEN número ELSE número END
SELECT IF condición THEN arithmetic_operation ELSE arithmetic_operation END

Ejemplos
SELECT IF SUM(Amount) >= AVG(Amount) THEN 10 ELSE 0 END
SELECT IF SUM(Duration) - AVG(Duration) > 2000  THEN 0 ELSE 1 END
SELECT IF AVG(Probability) > 0.5 THEN SUM(Amount) * 10 ELSE SUM(Amount) / 10 END

CASE

Descripción
CASE se utiliza para instrucciones condicionales complejas que contienen tres o más condiciones. Tras la palabra clave CASE, las condiciones y los resultados siguen las palabras clave WHEN y THEN respectivamente. Si no se cumple ninguna de las condiciones WHEN se devuelve el resultado que sigue a ELSE. Los resultados pueden ser valores numéricos u operaciones aritméticas. Todas las instrucciones CASE concluyen con la palabra clave END.

Sintaxis
SELECT CASE WHEN … THEN …, WHEN… THEN… ELSE… END
SELECT CASE WHEN condición1 THEN resultado1, WHEN condición2 THEN resultado2 ELSE resultado3 END

Ejemplos

Code Block
languagetext
SELECT CASE WHEN ACTIVITY_TYPE IN(Email,Web_Meeting) THEN 1, 
WHEN ACTIVITY_TYPE IN(Phone_Call,In_Person_Meeting) THEN 2 
ELSE 0 END
Code Block
languagetext
SELECT CASE WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) > 100000 THEN 2, 
WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) < 100000 THEN 1 
ELSE 0 END

IFNULL

Descripción
IFNULL permite predefinir de qué manera la plataforma GoodData gestiona los valores ausentes devueltos por una expresión de métrica (métrica, agregación de hecho u operación aritmética). Cuando una expresión de métrica que se encuentra dentro de una instrucción IFNULL devuelve un valor nulo, el número de reemplazo especificado en el segundo parámetro de la función IFNULL se inserta en lugar del valor nulo.
IFNULL es especialmente útil en los casos en que otra definición de métrica hace referencia a una submétrica. Al incluir la submétrica dentro de una instrucción IFNULL impide que la métrica envolvente sea nula cuando uno de sus componentes devuelva un valor nulo.

Note

Si utiliza una métrica como un valor de reemplazo, este informe no será computable debido a una definición de métrica incorrecta.

Sintaxis
SELECT IFNULL(…,…)
SELECT IFNULL(metric_expression,replacement_value)

Ejemplos
SELECT IFNULL(SUM(Amount), 0)
SELECT IFNULL(SUM(FB_Cost + TW_Cost), 0)
SELECT IFNULL(SUM(Amount) + 100, 1)
SELECT IFNULL((SELECT SUM(Payments)
       WHERE Product IN (Explorer, Educational)), 0)

Funciones de clasificación

XAE admite ahora la función RANK además de la clasificación básica TOP(n) y BOTTOM(n) (por ejemplo, TOP(5) los cinco primeros representantes de ventas).

En combinación con distintas formulaciones de la instrucción WITHIN,RANK permite clasificar valores dentro de subgrupos asociados a los valores de atributo de un informe. Esto sería útil para clasificar a los 5 mejores representantes de ventas dentro de cada región, en un informe que contenga datos de los representantes de ventas para todas las regiones de ventas.

Cuando se acompaña de varias formulaciones de las instrucciones WITHIN, RANK se puede utilizar para llevar a cabo lo siguiente:

  • clasificaciones dense
  • clasificación por porcentaje
  • distribución acumulativa

Cuando RANK se usa sin una instrucción WITHIN (por ejemplo, SELECT RANK(Avg. Won)), la función clasifica secuencialmente todos los valores de métricas de las filas de un informe, ofreciendo un resultado como RANK(...) WITHIN(ALL IN ALL OTHER DIMENSIONS). Cuando se agrega una instrucción WITHIN a una función RANK, se puede utilizar con una de las dos formulaciones de parámetro, lo que genera resultados diferentes. Estas opciones se muestran en la siguiente tabla.

WITHINSalida
WITHIN ( attr, …, ALL attr, … ALL OTHER EXCEPT … )Las clasificaciones dentro de los subgrupos que se especifican mediante los atributos contenidos en el parámetro de la instrucción WITHIN.
Las clasificaciones dentro de los clústeres de la dimensionalidad actual modificados con las reglas especificadas; es decir, la clasificación dentro del grupo. Respetando la dimensionalidad del informe especificado en CÓMO. Aquí se puede utilizar cualquier instrucción que pueda estar en la cláusula BY.
WITHIN (CURRENT)Las clasificaciones dentro de la dimensionalidad actual no tienen en cuenta la dimensionalidad del informe que se define en CÓMO. Cada fila del informe se trata como un grupo separado, por lo que la métrica de clasificación proporcionará solo un valor, aquí 1, como resultado de todas las filas. Esta opción es difícilmente útil con la clasificación TOP/BOTTOM.

La sintaxis completa de la función RANK se describe en el siguiente texto.

RANK

Descripción
La función de clasificación devuelve una clasificación numérica para cada uno de los valores de métrica de un informe en orden ascendente [ASC] (el valor de clasificación más pequeño clasificado en primer lugar) o en orden descendente [DESC] (el valor más grande clasificado en primer lugar). Para los casos en los que no se especifica explícitamente, el orden ascendente es el orden predeterminado.,
Una característica clave de la función RANK es la palabra clave WITHIN, que permite realizar clasificaciones de varios subgrupos de atributos dentro de un informe individual.

Sintaxis
SELECT RANK(…) [ASC|DESC] [WITHIN(…)]

SELECT RANK(métrica)
SELECT RANK(métrica) WITHIN( CURRENT )
SELECT RANK(métrica) WITHIN( Attribute_1, Attribute_2, [...] )
SELECT RANK(métrica)WITHIN( cualquier instrucción BY )

Ejemplos
SELECT RANK(Avg. Won)
SELECT RANK(Amount) ASC WITHIN(Year(Closed))
SELECT RANK(Amount[SUM])WITHIN(CURRENT)
SELECT RANK(Amount[SUM])WITHIN(ALL OTHER)

De la misma forma que con RANK, las funciones de clasificación TOP y BOTTOM se pueden utilizar con una instrucción WITHIN en las clasificaciones que no tienen en cuenta los subgrupos dentro de un informe. La adición de fórmulas de WITHIN a TOP y BOTTOM permite clasificaciones que incluyan solo los valores superior o inferior de cada subgrupo en el resultado final del informe.

WHERE TOP|BOTTOM (n) IN

Descripción
Esta clasificación TOP y BOTTOM es una versión concreta de las funciones de clasificación. Clasificará y filtrará el resultado de una determinada métrica en función de las palabras clave TOP o BOTTOM. Su sintaxis requiere que una palabra clave SELECT preceda la métrica que sigue IN. Interpreta la métrica de clasificación como un subinforme.

Note

Admite ahora parámetros de porcentaje en lugar de n.

Sintaxis
SELECT … WHERE TOP(…) IN … WITHIN …
SELECT métroca1 WHERE TOP(n) IN (SELECT Métrica2 BY A1, A2...) WITHIN (...)

Ejemplos
SELECT Amount WHERE TOP(5) IN (SELECT Avg. Won BY Product)

Pero también se admite la palabra clave OF en lugar de IN. La sintaxis es más sencilla y aumenta la usabilidad. La diferencia también está en cómo se interpretan las métricas en la infraestructura de backend. La palabra clave OF permite clasificar por una o más métricas e interpreta la métrica como una submétrica, frente a IN, que requiere una cláusula SELECT e interpreta la métrica de la clasificación como un subinforme.

WHERE TOP|BOTTOM (n) OF

Descripción
Esta clasificación TOP y BOTTOM es una versión concreta de las funciones de clasificación. Clasificará y filtrará el resultado de una determinada métrica en función de las palabras clave TOP o BOTTOM. Permite la clasificación de más de una métrica e interpreta "la métrica" ​​como una submétrica.

Sintaxis
SELECT … WHERE TOP(…) OF … [WITHIN …]
SELECT métrica1 WHERE [TOP|BOTTOM](n) OF ( M1, ... )
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... ) WITHIN ( ... )

Ejemplos
SELECT Amount WHERE TOP(5) OF (Avg. Won)
SELECT Won WHERE TOP(10) OF (Won) WITHIN(Region)

SELECT Amount WHERE BOTTOM(5) OF (Lost) 
                            WITHIN(Region, Year (closed))

WHERE TOP|BOTTOM (n%) OF

Descripción
Las clasificaciones por porcentaje son similares a todas las otras clasificaciones TOP y BOTTOM pero utilizan el signo % en la especificación del parámetro n de la clasificación TOP|BOTTOM.

Sintaxis
SELECT … WHERE [TOP|BOTTOM](n%)
SELECT métrica1 WHERE [TOP|BOTTOM](n%)

Ejemplos
SELECT Amount WHERE TOP(5%) OF (Amount) AND Product=Explorer
SELECT RANK(Top 5% parent) WHERE TOP(50%) OF (Top 5% parent)

Sv translation
languageja_JP

GoodData プラットフォームは、独自の強力なマルチディメンショナル分析クエリ言語を使用して、カスタマイズ性に優れたわかりやすい各種ダッシュボードを統合しています。

コンテンツ:

Table of Contents

GoodData Extensible Analytics Engine

Extensible Analytics Engine は、Gooddata 独自の MAQL/XAE 言語を使用します。コンテキストに基づくメトリックのディメンション性が提供されるため、ユーザーはメトリックの定義を変更することなく、多様なコンテキストでメトリックを適用できます。メトリックを別のメトリックにネストすることもできるので、より服殺な KPI の構築にも適しています。

GoodData プラットフォームのメリットは、基礎である物理データモデルに影響を与えることなく、データを操作できることにあります。GoodData の論理データモデルは、物理データモデルの複雑性を抽象化します。これにより、ユーザーは、プロジェクトデータがどのように保存されているかを意識することなく、ビジネスのユースケースに集中できます。

XAE は、新しいアーキテクチャと新機能により、レポーティングの価値を高め、複雑なユースケースに対応するだけでなく、既存ユースケースも改善します。最も高度なフォームでは、クエリの最適化・実行の強化などを実現します。

XAE の新機能の多くは、ビジネスユーザーからの提案や意見を採用したものです。例外レポートの作成 (使いやすい NULL 処理)、高度なランク付け (パーセントのランク、グループ内でのランク付けなど)、複雑な条件付きレポート作成 (IF-ELSE および CASE) はすべて、新しい XAE で可能になりました。さらに、プロダクトのファクトの累計を返す新しい累計集約関数も導入しました。これは、テーブルやグラフに導入できるほか、他のメトリック内にネストできます。

XAE は、分析を合理化し、日常業務での意思決定がデータに基づいて行われるよう支援することを目的としています。

絶対値、符号関数、平方根

ABS( )

説明
数値の絶対値を返します。負の値の場合、正の値が返されます。正の値の場合、変更はありません。

構文
SELECT ABS(number)
SELECT ABS(metric)


SELECT ABS(-5)
…returns the value “5”

SELECT ABS(10)
…returns the value “10”

SELECT ABS((Total_Amount)-(SELECT Total_Amount WITHOUT PF))

SIGN( )

説明
符号関数は数値の符号を返します。正の値の場合、1を返します。負の値の場合、-1を返します。値がゼロの場合、0を返します。

構文
SELECT SIGN(number)
SELECT SIGN(metric)


SELECT SIGN(-3.87)
…returns the value -1

SELECT SIGN(33)
…returns the value 1

SELECT SIGN(0)
…returns the value 0

SQRT( )

説明
平方根関数は、数値またはメトリック入力の平方根を返します。負の入力または複素数の入力は NULL 出力になります。

構文
SELECT SQRT(number)
SELECT SQRT(metric)


SELECT SQRT(25)
…returns the value “5”

SELECT SQRT(33.6)
…returns the value “5.796550698”

SELECT SQRT(SELECT SUM(Sales))
…returns the sqrt of the Total Sales metric

累計

以前、累計を GoodData テーブルに追加する場合には、セカンダリクリックのコンテキストメニューを使用していました。これにより、オリジナルの右側に新しい列が作成され、選択した列のセルを自動的に合計していました。ただし、この列の値の計算に使用する実際のメトリックにはアクセスできませんでした。

しかし今回、RUNSUM 関数、RUNAVG 関数、RUNMIN 関数、RUNMAX 関数を MAQL で使用し、他のメトリックで再利用できる累計メトリックを作成できるようなりました。これにより、累計メトリックを他の MAQL 関数で操作したり、他のレポートに (レポート数は無制限で) 追加できるようになりました。

RUNSUM / RUNAVG / RUNMIN / RUNMAX

説明
プロジェクトのファクトの累計を出します。日付属性で分類されたテーブルでは、任意の日の累計の値は、それまでのすべての日の値と今日の値を集計することによって計算されます。

構文
RUNSUM(fact)
RUNAVG(fact)
RUNMIN(fact)
RUNMAX(fact)
RUNSUM(metric)
RUNAVG(metric)
RUNMIN(metric)
RUNMAX(metric)


SELECT RUNSUM(Sales)

SELECT RUNAVG(Leads) WHERE Year={ this }
SELECT RUNMIN(Probability) WHERE Amount > 500000
SELECT RUNMAX(Opportunities) BY Quarter/Year
SELECT RUNSUM(Won Opportunities) WITHOUT PARENT FILTER
Note

現時点では、ディメンション性は1つの日付/時刻属性のみに (厳密に) 限定されています。

条件付き文

IF THEN ELSE

説明
IF THEN ELSE ステートメントは、いくつかの条件が満たされているかどうかに応じて、2つの可能な値のいずれかを返すか、2つの可能な計算のうちの1つを実行します。満たす必要がある条件は、キーワード IF の後にあり、フィルタリングキーワードまたは関係演算子(IN, NOT IN, BETWEEN, NOT BETWEEN, =, < , <=, >, >=, <>)のいずれかを使用して作成できます。

最初の可能な結果は、キーワード THEN に続き、2 番目に可能な結果はキーワード ELSE に続きます。返される結果は、数値または算術演算です。All ALL IF THEN ELSE ステートメントは END キーワードで終了します。

Note

(else ステート以外に) 3つ以上の条件がある場合には、次に示す CASE ステートメントを使用します。

構文

SELECT IF … THEN … ELSE … END
SELECT IF condition THEN number ELSE number END
SELECT IF condition THEN arithmetic_operation ELSE arithmetic_operation END


SELECT IF SUM(Amount) >= AVG(Amount) THEN 10 ELSE 0 END
SELECT IF SUM(Duration) - AVG(Duration) > 2000  THEN 0 ELSE 1 END
SELECT IF AVG(Probability) > 0.5 THEN SUM(Amount) * 10 ELSE SUM(Amount) / 10 END

CASE

説明
CASE は、3 つ以上の条件を含む複雑なステートメントに使用されます。CASE キーワードに続いて、条件と結果はそれぞれ WHENTHEN に続きます。WHEN 条件が一つも満たされていない場合は、ELSE に続く結果が返されます。結果は、数値または算術演算です。すべての CASE ステートメントは END キーワードで終了します。

構文
SELECT CASE WHEN … THEN …, WHEN… THEN… ELSE… END
SELECT CASE WHEN condition1 THEN outcome1, WHEN condition2 THEN outcome2 ELSE outcome3 END

Code Block
languagetext
SELECT CASE WHEN ACTIVITY_TYPE IN(Email,Web_Meeting) THEN 1, 
WHEN ACTIVITY_TYPE IN(Phone_Call,In_Person_Meeting) THEN 2 
ELSE 0 END
Code Block
languagetext
SELECT CASE WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) > 100000 THEN 2, 
WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) < 100000 THEN 1 
ELSE 0 END

IFNULL

説明
IFNULL を使用すると、メトリック式 (メトリック、ファクト集約、または算術演算) により返された欠損値を GoodData プラットフォームがどのように処理するかを事前に定義することができます。IFNULL ステートメント内でラップされたメトリック式が NULL 値を返す場合、IFNULL 関数の 2 番目のパラメーターで指定された置換番号が NULL 値の代わりに挿入されます。
IFNULL は、サブメトリックが別のメトリックの定義内で参照される場合に特に便利です。IFNULL ステートメントでサブメトリックをラップすると、そのコンポーネントの1つが NULL 値を返すことによって包含メトリックが NULL になるのを防ぎます。

Note

メトリックを置換値として使用すると、メトリックの定義が不適切であるため、このレポートは計算できません。

構文
SELECT IFNULL(…,…)
SELECT IFNULL(metric_expression,replacement_value)


SELECT IFNULL(SUM(Amount), 0)
SELECT IFNULL(SUM(FB_Cost + TW_Cost), 0)
SELECT IFNULL(SUM(Amount) + 100, 1)
SELECT IFNULL((SELECT SUM(Payments)
       WHERE Product IN (Explorer, Educational)), 0)

ランク付け関数

XAE は、基本的な TOP(n) および BOTTOM(n) のランク付け (TOP(5)sales reps など) に加えて、RANK 関数をサポートするようになりました。

WITHIN ステートメント内の様々な定式化との組み合わせにより、RANK はレポートの属性値に関連付けられたサブグループ内の値をランク付けできます。これは、すべての販売地域にまたがる販売担当者データを含むレポートにおいて、地域ごとのトップ5販売担当者のランク付けを行う場合に便利です。

RANKWITHIN ステートメントの様々な定式化と併用すれば、次を実行する際に使用できます。

  • 密度の高いランク付け
  • パーセントによるランク付け
  • 累積分布

RANKWITHIN ステートメント (例: SELECT RANK(Avg.Won) なしで使用すると、この関数はレポート内の行のすべてのメトリック値を順番にランク付けし、RANK(...) WITHIN(ALL IN ALL OTHER DIMENSIONS) と同じ結果を出力します。WITHIN ステートメントを RANK 関数に付加すると、2つのパラメータ定式化のいずれかで使用でき、異なる結果を出力します。次の表に詳細を示します。

WITHIN出力
WITHIN ( attr, …, ALL attr, … ALL OTHER EXCEPT … )WITHIN ステートメントのパラメータに含まれる属性で指定されたサブグループ内でランク付けします。
ルール指定 (つまり、グループ内でのランク付け) により変更される現在のディメンション性のクラスタ内でランク付けします。HOW で指定されたレポートのディメンション性を尊重します。ここでは、BY 句の形のあらゆるステートメントを使用できます。
WITHIN (CURRENT)現在のディメンション性内でランク付けします。HOW によるレポートのディメンション性を無視します。レポートのすべての行が別々のグループとして処理され、すべての行における結果として、ランク付けメトリックが1つのみの値 (ここでは1) を出力します。TOP/BOTTOM ランク付けではほとんど有用ではありません。

RANK 関数の完全な構文については、次の項で説明します。

RANK

説明
ランク付け関数は、昇順 [ASC](最小値がランクの最初)または降順 [DESC](最大値がランクの最初)で各レポートメトリック値の数値ランクを返します。順序が明示的に指定されていない場合、昇順が既定です。
RANK 関数の主な機能は WITHIN キーワードです。これにより、1つのレポート内で複数の属性サブグループのランク付けを実行できます。

構文
SELECT RANK(…) [ASC|DESC] [WITHIN(…)]

SELECT RANK(metric)
SELECT RANK(metric) WITHIN( CURRENT )
SELECT RANK(metric) WITHIN( Attribute_1, Attribute_2, [...] )
SELECT RANK(metric)WITHIN( any BY statement )


SELECT RANK(Avg. Won)
SELECT RANK(Amount) ASC WITHIN(Year(Closed))
SELECT RANK(Amount[SUM])WITHIN(CURRENT)
SELECT RANK(Amount[SUM])WITHIN(ALL OTHER)

レポート内のサブグループを無視する場合、RANK と同様に、TOPBOTTOM のランク付け関数は WITHIN ステートメントなしでも使用できます。WITHIN 式を TOPBOTTOM に付加することにより、最終的なレポート出力で、各サブグループ内での上位と下位の n 値のみを含むランク付けを得ることができます。

WHERE TOP|BOTTOM (n) IN

説明
このTOP および BOTTOM のランク付けは、ランク付け関数の特化したバージョンです。TOP または BOTTOM キーワードに基づいて、ランク付けの結果を特定のメトリックに絞り込みます。構文では、SELECT キーワードを該当するメトリックの前に置き、IN の後に続ける必要があります。これにより、ランク付けメトリックはサブレポートとして解釈されます。

Note

n の代わりにパーセントパラメータを使用できます。

構文
SELECT … WHERE TOP(…) IN … WITHIN …
SELECT metric1 WHERE TOP(n) IN (SELECT Metric2 BY A1, A2...) WITHIN (...)


SELECT Amount WHERE TOP(5) IN (SELECT Avg. Won BY Product)

ただし、IN の代わりに OF キーワードもサポートされています。これにより、構文がより簡単で使いやすくなります。また、バックエンドのインフラストラクチャによるメトリックの解釈方法も変更されました。IN は SELECT が必須であり、ランク付けメトリックをサブレポートとして解釈します。これに対して、OF は、複数メトリックをランク付けでき、メトリックをサブメトリックとして解釈します。

WHERE TOP|BOTTOM (n) OF

説明
このTOP および BOTTOM のランク付けは、ランク付け関数の特化したバージョンです。TOP または BOTTOM キーワードに基づいて、ランク付けの結果を特定のメトリックに絞り込みます。複数のメトリックのランク付けを可能にし、該当するメトリックをサブメトリックとして解釈します。

構文
SELECT … WHERE TOP(…) OF … [WITHIN …]
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... )
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... ) WITHIN ( ... )


SELECT Amount WHERE TOP(5) OF (Avg. Won)
SELECT Won WHERE TOP(10) OF (Won) WITHIN(Region)

SELECT Amount WHERE BOTTOM(5) OF (Lost) 
                           WITHIN(Region, Year (closed))

WHERE TOP|BOTTOM (n%) OF

説明
パーセントによるランク付けは TOPBOTTOM と類似していますが、ランク付けの TOP|BOTTOM パラメータ n の代わりに % を指定します。

構文
SELECT … WHERE [TOP|BOTTOM](n%)
SELECT metric1 WHERE [TOP|BOTTOM](n%)


SELECT Amount WHERE TOP(5%) OF (Amount) AND Product=Explorer
SELECT RANK(Top 5% parent) WHERE TOP(50%) OF (Top 5% parent)

...

Sv translation
languagept_PT

A plataforma GoodData combina o poder dos dashboards altamente personalizáveis e compreensíveis com base na nossa poderosa linguagem de consulta analítica multidimensional.

Conteúdos:

Table of Contents

Motor de análise extensível GoodData

O Motor de análise extensível potencia a nossa linguagem MAQL/XAE proprietária, que oferece dimensionalidades de métricas dependentes do contexto, permitindo aos utilizadores aplicarem métricas em muitos contextos sem alterarem a definição da métrica. Até pode aninhar uma métrica numa outra para construir KPI mais complexos.

A vantagem da plataforma GoodData torna-se aparente quando começa a manipular dados sem ter impacto no modelo de dados físicos subjacente. Os modelos de dados lógicos GoodData abstraem-se das complexidades de um modelo de dados físico, permitindo aos utilizadores focarem-se em casos de utilização empresarial, em vez de na forma como os dados de um projeto são armazenados.

Com a nova arquitetura e todas as novas funcionalidades, a XAE fornece mais valor de relatório, enfrentando casos de utilização mais complexos e melhorando os existentes. Na sua forma mais avançada, inclui melhor otimização de consulta e execução e muito mais.

Um conjunto de novas ofertas XAE deve-se à contribuição dos nossos utilizadores empresariais. Relatório de exceção (gestão NULL confortável), classificação avançada (incluindo classificações de percentagem, classificação dentro de grupo, etc.) e classificação condicional complexa (IF-ELSE e CASE) encontram-se todas ativadas pelo novo XAE. Também estamos a introduzir novas funções de agregação de total corrente que devolvem agregações cumulativas de um facto de produto e podem ser introduzidas em tabelas, gráficos ou aninhadas dentro de outras métricas.

A XAE destina-se a ajudar a simplificar a forma como as organizações analisam e tomam decisões conduzidas pelos dados numa base diária. 

Valor absoluto, Sinal e Raiz quadrada

ABS( )

Descrição
Devolve o valor absoluto de um número. Os valores negativos são devolvidos positivos. Os valores positivos não são alterados.

Sintaxe
SELECT ABS(number)
SELECT ABS(metric)

Exemplos
SELECT ABS(-5)
…devolve o valor “5”

SELECT ABS(10)
…devolve o valor “10”

SELECT ABS((Total_Amount)-(SELECT Total_Amount WITHOUT PF))

SIGN( )

Descrição
A função de sinal devolve o sinal de um número. Se o número for positivo, o sinal devolve 1. Se o número for negativo, o sinal devolve -1. Se o número for zero, o sinal devolve 0.

Sintaxe
SELECT SIGN(number)
SELECT SIGN(metric)

Exemplos
SELECT SIGN(-3.87)
…devolve o valor -1

SELECT SIGN(33)
…devolve o valor 1

SELECT SIGN(0)
…devolve o valor 0

SQRT( )

Descrição
A função de raiz quadrada devolve a raiz quadrada de uma entrada de métrica ou número. As entradas negativas ou complexas geram um resultado NULL.

Sintaxe
SELECT SQRT(number)
SELECT SQRT(metric)

Exemplos
SELECT SQRT(25)
…devolve o valor “5”

SELECT SQRT(33.6)
…devolve o valor “5.796550698”

SELECT SQRT(SELECT SUM(Sales))
…devolve o sqrt da métrica Total de vendas

Totais Correntes

Anteriormente, os totais correntes podiam ser adicionados a tabelas GoodData através do menu contextual no botão direito do rato. Tal, criava uma nova coluna à direita da coluna original que automaticamente totalizava as células da coluna selecionada. Contudo, não era possível aceder à métrica real utilizada para calcular os valores da coluna.

Agora, pode utilizar as funções RUNSUM, RUNAVG, RUNMIN e RUNMAX em MAQL para criar métricas de totais correntes que podem ser reutilizadas em outras métricas, onde podem ser manipuladas com outras funções MAQL ou adicionadas a qualquer número de outros relatórios.

RUNSUM / RUNAVG / RUNMIN / RUNMAX

Descrição
Tem em consideração o total corrente de um facto de projeto. Numa tabela decomposta por um atributo de data, o valor total corrente num dia específico seria calculado ao agregar os valores de todos os dias anteriores juntamente com os valores do dia atual.

Sintaxe
RUNSUM(fact)
RUNAVG(fact)
RUNMIN(fact)
RUNMAX(fact)
RUNSUM(metric)
RUNAVG(metric)
RUNMIN(metric)
RUNMAX(metric)

Exemplos
SELECT RUNSUM(Sales)

SELECT RUNAVG(Leads) WHERE Year={ this }
SELECT RUNMIN(Probability) WHERE Amount > 500000
SELECT RUNMAX(Opportunities) BY Quarter/Year
SELECT RUNSUM(Won Opportunities) WITHOUT PARENT FILTER
Note

A limitação atual é que a dimensionalidade apenas pode ser (e precisamente) um atributo de data/hora.

Instruções Condicionais

IF THEN ELSE

Descrição
As instruções IF THEN ELSE devolvem um de dois possíveis valores ou efetuam um de dois possíveis cálculos, consoante o cumprimento ou não de uma condição. A condição que precisa de ser cumprida segue a palavra-chave IF e pode ser criada através de qualquer uma das palavras-chave de filtragem ou dos operadores relacionais (IN, NOT IN, BETWEEN, NOT BETWEEN, =, < , <=, >, >=, <>).

O primeiro resultado possível segue a palavra-chave THEN e o segundo resultado possível segue a palavra-chave ELSE. Os resultados devolvidos podem ser valores numéricos ou operações aritméticas. Todas TODAS as instruções IF THEN ELSE acabam com a palavra-chave END.

Note

Se existirem três ou mais condições (além de uma instrução else), utilize a instrução CASE descrita abaixo.

Sintaxe 

SELECT IF … THEN … ELSE … END
SELECT IF condition THEN number ELSE number END
SELECT IF condition THEN arithmetic_operation ELSE arithmetic_operation END

Exemplos
SELECT IF SUM(Amount) >= AVG(Amount) THEN 10 ELSE 0 END
SELECT IF SUM(Duration) - AVG(Duration) > 2000  THEN 0 ELSE 1 END
SELECT IF AVG(Probability) > 0.5 THEN SUM(Amount) * 10 ELSE SUM(Amount) / 10 END

CASE

A descrição
CASE é utilizada para instruções condicionais complexas com três ou mais condições. A seguir à palavra-chave CASE, as condições e os resultados seguem as condições WHEN e THEN, respetivamente. Se nenhuma das condições WHEN for cumprida, o resultado a seguir a ELSE é devolvido. Os resultados podem ser valores numéricos ou operações aritméticas. Todas as instruções CASE terminam com a palavra-chave END.

Sintaxe
SELECT CASE WHEN … THEN …, WHEN… THEN… ELSE… END
SELECT CASE WHEN condition1 THEN outcome1, WHEN condition2 THEN outcome2 ELSE outcome3 END

Exemplos

Code Block
languagetext
SELECT CASE WHEN ACTIVITY_TYPE IN(Email,Web_Meeting) THEN 1, 
WHEN ACTIVITY_TYPE IN(Phone_Call,In_Person_Meeting) THEN 2 
ELSE 0 END
Code Block
languagetext
SELECT CASE WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) > 100000 THEN 2, 
WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) < 100000 THEN 1 
ELSE 0 END

IFNULL

Descrição
IFNULL permite-lhe predefinir a forma como a GoodData lida com quaisquer valores em falta que são devolvidos por uma expressão métrica (métrica, agregação de factos ou operação aritmética). Se uma expressão métrica encapsulada numa instrução IFNULL devolver um valor nulo, o número de substituição especificado no segundo parâmetro da função IFNULL é inserido em vez do valor nulo.
IFNULL é especialmente útil em casos em que uma submétrica é referida por outra definição de métrica. Encapsular a submétrica numa instrução IFNULL impede a métrica envolvente de se tornar nula por um dos componentes devolver um valor nulo.

Note

Se utilizar uma métrica como um valor de substituição, não será possível processar este relatório devido a uma definição de métrica inadequada.

Sintaxe
SELECT IFNULL(…,…)
SELECT IFNULL(metric_expression,replacement_value)

Exemplos
SELECT IFNULL(SUM(Amount), 0)
SELECT IFNULL(SUM(FB_Cost + TW_Cost), 0)
SELECT IFNULL(SUM(Amount) + 100, 1)
SELECT IFNULL((SELECT SUM(Payments)
       WHERE Product IN (Explorer, Educational)), 0)

Funções de classificação

Agora a XAE suporta a função RANK além da classificação básica TOP(n) e BOTTOM(n) (ex.: TOP(5)de relatórios de vendas).

Juntamente com várias formulações das instruções WITHIN, RANK permite-lhe classificar valores nos subgrupos associados aos valores de atributo de um relatório. Tal, seria útil para classificar o top 5 de relatórios de vendas dentro de cada região, num relatório com dados de relatório de vendas em todas as regiões de vendas.

Quando acompanhado por várias formulações de instruções WITHIN, RANK pode ser utilizado para realizar o seguinte:

  • classificações densas
  • classificação por percentagem
  • distribuição cumulativa

Quando RANK é utilizado sem uma instrução WITHIN incluída (ex.: SELECT RANK(Avg. Won, a função classifica sequencialmente todos os valores de métrica nas linhas de um relatório, obtendo resultados idênticos a RANK(...) WITHIN(ALL IN ALL OTHER DIMENSIONS). Quando uma instrução WITHIN é anexada a uma função RANK, esta pode ser utilizada com duas formulações de parâmetro, que geram resultados diferentes. Estas são exploradas na tabela abaixo.

WITHINSaída
WITHIN ( attr, …, ALL attr, … ALL OTHER EXCEPT … )Classificações dentro de subgrupos que são especificadas pelos atributos presentes no parâmetro de instrução WITHIN.
As classificações dentro de grupos de dimensionalidade atual são alteradas utilizando as regras especificadas, ou seja classificação dentro de grupo. Respeitar a dimensionalidade de relatório especificada em HOW. Qualquer instrução que possa estar presente na cláusula BY pode ser utilizada aqui.
WITHIN (CURRENT)As classificações dentro da dimensionalidade atual ignoram a dimensionalidade de relatório de HOW. Cada fila do relatório é gerida como um grupo separado e, desta forma, a métrica de classificação irá fornecer apenas um valor, neste caso 1, como um resultado para todas as filas. Dificilmente útil com classificação TOP/BOTTOM.

A sintaxe completa da função RANK é descrita no seguinte texto.

RANK

Descrição
A função de classificação devolve uma classificação numérica para cada um dos valores de métrica de um relatório em ordem ascendente [ASC] (começando pelos valores menores) ou ordem descendente [DESC] (começando pelos valores maiores). A ordem ascendente é a ordem predefinida, nos casos em que uma ordem não seja explicitamente definida.
Uma funcionalidade crucial da função RANK é a palavra-chave WITHIN, que permite efetuar classificações de vários subgrupos de atributos num único relatório.

Sintaxe
SELECT RANK(…) [ASC|DESC] [WITHIN(…)]

SELECT RANK(metric)
SELECT RANK(metric) WITHIN( CURRENT )
SELECT RANK(metric) WITHIN( Attribute_1, Attribute_2, [...] )
SELECT RANK(metric)WITHIN( any BY statement )

Exemplos
SELECT RANK(Avg. Won)
SELECT RANK(Amount) ASC WITHIN(Year(Closed))
SELECT RANK(Amount[SUM])WITHIN(CURRENT)
SELECT RANK(Amount[SUM])WITHIN(ALL OTHER)

Tal como em RANK, as funções de classificação TOP e BOTTOM podem ser utilizadas sem uma instrução WITHIN para classificar os subgrupos ignorados dentro de um relatório. As formulações anexadas de WITHIN para TOP e BOTTOM permitem classificações que incluam apenas os valores n top e bottom dentro de cada subgrupo no resultado do relatório final.

WHERE TOP|BOTTOM (n) IN

Descrição
Estas classificações TOP e BOTTOM são uma versão específica das funções de classificação. Irão classificar e filtrar o resultado de uma métrica específica com base nas palavras-chave TOP ou BOTTOM. A sua sintaxe exige uma palavra-chave SELECT antes da métrica IN. Interpreta a métrica de classificação como um sub-relatório.

Note

Agora suporta parâmetros de percentagem em vez de n.

Sintaxe
SELECT … WHERE TOP(…) IN … WITHIN …
SELECT metric1 WHERE TOP(n) IN (SELECT Metric2 BY A1, A2...) WITHIN (...)

Exemplos
SELECT Amount WHERE TOP(5) IN (SELECT Avg. Won BY Product)

Mas também irá suportar a palavra-chave OF em vez de IN. A sintaxe torna-se então mais fácil e a capacidade de utilização também aumenta. A diferença reside também em como as métricas são interpretadas na infraestrutura de back-end. A palavra-chave OF permite a classificação por mais do que uma métrica e interpreta a métrica como uma submétrica, em contraste com IN, que exige um SELECT e interpreta a métrica de classificação como um sub-relatório.

WHERE TOP|BOTTOM (n) OF

Descrição
Estas classificações TOP e BOTTOM são uma versão específica das funções de classificação. Irão classificar e filtrar o resultado de uma métrica específica com base nas palavras-chave TOP ou BOTTOM. Permite a classificação de mais do que uma métrica e interpreta “a métrica” como uma submétrica.

Sintaxe
SELECT … WHERE TOP(…) OF … [WITHIN …]
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... )
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... ) WITHIN ( ... )

Exemplos
SELECT Amount WHERE TOP(5) OF (Avg. Won)
SELECT Won WHERE TOP(10) OF (Won) WITHIN(Region)

SELECT Amount WHERE BOTTOM(5) OF (Lost) 
                            WITHIN(Region, Year (closed))

WHERE TOP|BOTTOM (n%) OF

Descrição
As classificações de percentagem são semelhantes a todas as outras TOP e BOTTOM, mas utilizam o sinal % na especificação do parâmetro n de classificação TOP|BOTTOM.

Sintaxe
SELECT … WHERE [TOP|BOTTOM](n%)
SELECT metric1 WHERE [TOP|BOTTOM](n%)

Exemplos
SELECT Amount WHERE TOP(5%) OF (Amount) AND Product=Explorer
SELECT RANK(Top 5% parent) WHERE TOP(50%) OF (Top 5% parent)

Sv translation
languagefr

La plateforme GoodData combine la puissance des tableaux de bord hautement personnalisables et compréhensibles en fonction de notre puissant langage de requête analytique multidimensionnel.

Sommaire :

Table of Contents

GoodData Extensible Analytics Engine

Extensible Analytics Engine tire parti du langage MAQL/XAE, qui offre des dimensionnalités de métriques contextuelles, permettant ainsi d'appliquer des métriques dans de nombreux contextes sans modifier la définition de la métrique. Vous pouvez même imbriquer une seule métrique dans une autre pour construire des KPI plus complexes.

L'avantage de la plateforme GoodData devient évident lorsque vous commencez à manipuler les données sans impacter le modèle physique de données sous-jacent. Les modèles logiques de données GoodData s'abstraient des complexités d'un modèle physique de données, permettant ainsi de cibler les cas d'utilisation commerciaux, plutôt que la méthode de stockage des données d'un projet.

Avec la nouvelle architecture et toutes les nouvelles fonctionnalités, XAE fournit plus de valeur aux rapports, traitant ainsi des cas d'utilisation plus complexes et améliorant ainsi les actuels. Dans sa forme la plus élaborée, il inclut une meilleure optimisation et exécution des requêtes, etc.

Un certain nombre de nouvelles offres de XAE fait suite aux informations fournies par nos utilisateurs d'entreprise. Les rapports d'exception (traitement NULL simple), le classement avancé (y compris les rangs en pourcentage, le classement à l'intérieur du groupe, etc.), et les rapports conditionnels complexes (IF-ELSE et CASE) sont tous activés par le nouveau XAE. Nous introduisons également de nouvelles fonctions d'agrégation du total cumulé qui renvoient des agrégations cumulées d'un fait de produit et peuvent être introduites dans les tableaux, graphiques ou être imbriquées à l'intérieur d'autres métriques.

XAE est conçu pour simplifier la manière dont les organisations analysent et prennent des décisions orientées données quotidiennement. 

Valeur absolue, Signum et Racine carrée

ABS( )

Description
Renvoie la valeur absolue d'un nombre Les valeurs négatives sont renvoyées positives. Les valeurs positives sont inchangées.

Syntaxe
SELECT ABS(number)
SELECT ABS(metric)

Examples
SELECT ABS(-5)
…renvoie la valeur “5”

SELECT ABS(10)
…renvoie la valeur “10”

SELECT ABS((Total_Amount)-(SELECT Total_Amount WITHOUT PF))

SIGN( )

Description
La fonction signum renvoie le signe d'un nombre. Si le nombre est positif, le signe renvoie 1. Si le nombre est négatif, le signe renvoie -1. Si le nombre est zéro, le signe renvoie 0.

Syntaxe
SELECT SIGN(number)
SELECT SIGN(metric)

Exemples
SELECT SIGN(-3.87)
…renvoie la valeur -1

SELECT SIGN(33)
…renvoie la valeur 1

SELECT SIGN(0)
…renvoie la valeur 0

SQRT( )

Description
La fonction racine carrée renvoie la racine carrée d'une entrée de nombre ou de métrique. Les entrées négatives ou complexes génèrent une sortie NULL.

Syntaxe
SELECT SQRT(number)
SELECT SQRT(metric)

Exemples
SELECT SQRT(25)
…renvoie la valeur “5”

SELECT SQRT(33.6)
…renvoie la valeur “5,796 550 698”

SELECT SQRT(SELECT SUM(Sales))
…renvoie le sqrt de la métrique Total Sales

Totaux cumulés

Auparavant, les totaux cumulés pouvaient être ajoutés aux tableaux GoodData à l'aide du menu contextuel par clic droit. Ceci créait une nouvelle colonne à droite de celle d'origine qui calculait automatiquement le total des cellules de la colonne sélectionnée : En revanche, la métrique réelle utilisée pour calculer les valeurs de la colonne était inaccessible.

À présent, vous pouvez utiliser les fonctions RUNSUM, RUNAVG, RUNMIN, et RUNMAX dans MAQL pour créer des métriques de total cumulé qui peuvent être réutilisées dans d'autres métriques, où elles peuvent être manipulées avec d'autres fonctions MAQL, ou ajoutées à un nombre indéfini d'autres rapports.

RUNSUM / RUNAVG / RUNMIN / RUNMAX

Description
Extrait le total cumulé d'un fait de projet. Dans un tableau ventilé par un attribut de date, la valeur du total cumulé glissant d'un jour donné serait calculée en agrégeant les données provenant de tous les jours précédents avec ceux du jour actuel.

Syntaxe
RUNSUM(fact)
RUNAVG(fact)
RUNMIN(fact)
RUNMAX(fact)
RUNSUM(metric)
RUNAVG(metric)
RUNMIN(metric)
RUNMAX(metric)

Exemples
SELECT RUNSUM(Sales)

SELECT RUNAVG(Leads) WHERE Year={ this }
SELECT RUNMIN(Probability) WHERE Amount > 500000
SELECT RUNMAX(Opportunities) BY Quarter/Year
SELECT RUNSUM(Won Opportunities) WITHOUT PARENT FILTER
Note

La limitation actuelle est que la dimensionnalité ne peut être (et plus précisément) qu'un attribut date/heure.

Instructions conditionnelles

IF THEN ELSE

Description
Les instructions IF THEN ELSE renvoient une des deux valeurs possibles, ou effectuent un des deux calculs possibles, selon que la condition soit remplie ou non. La condition qui doit être remplie suit le mot-clé IF et peut être analysée à l'aide d'un des mots-clés de filtrage ou des opérateurs relationnels (IN, NOT IN, BETWEEN, NOT BETWEEN, =, < , <=, >, >=, <>).

Le premier résultat possible suit le mot clé THEN, et le deuxième suit le mot - clé ELSE. Les résultats renvoyés peuvent être des valeurs numériques ou opérations arithmétiques Les instructions All IF THEN ELSE concluent se terminent par le mot-clé END.

Note

S'il y a trois conditions ou plus (outre un état else), utilisez l'instruction CASE décrite ci-dessous.

Syntaxe 

SELECT IF … THEN … ELSE … END
SELECT IF condition THEN number ELSE number END
SELECT IF condition THEN arithmetic_operation ELSE arithmetic_operation END

Exemples
SELECT IF SUM(Amount) >= AVG(Amount) THEN 10 ELSE 0 END
SELECT IF SUM(Duration) - AVG(Duration) > 2000  THEN 0 ELSE 1 END
SELECT IF AVG(Probability) > 0.5 THEN SUM(Amount) * 10 ELSE SUM(Amount) / 10 END

CASE

Description
CASE est utilisé pour des instructions conditionnelles complexes qui contiennent trois conditions ou plus. Suivant le mot clé CASE, les conditions et résultats suivent WHEN et THEN, respectivement. Si aucune des conditions WHEN n'est remplie, le résultat suivant ELSE est renvoyé. Les résultats peuvent être des valeurs numériques ou opérations arithmétiques Toutes les instructions CASE concluent par le mot clé END.

Syntaxe
SELECT CASE WHEN … THEN …, WHEN… THEN… ELSE… END
SELECT CASE WHEN condition1 THEN outcome1, WHEN condition2 THEN outcome2 ELSE outcome3 END

Exemples

Code Block
languagetext
SELECT CASE WHEN ACTIVITY_TYPE IN(Email,Web_Meeting) THEN 1, 
WHEN ACTIVITY_TYPE IN(Phone_Call,In_Person_Meeting) THEN 2 
ELSE 0 END
Code Block
languagetext
SELECT CASE WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) > 100000 THEN 2, 
WHEN SUM(Amount) > SUM(Lost) AND SUM(Amount) - SUM(Lost) < 100000 THEN 1 
ELSE 0 END

IFNULL

Description
IFNULL permet de prédéfinir comment GoodData gère des valeurs manquantes renvoyées par une expression métrique (métrique, agrégation de faits ou opération arithmétique). Si jamais une expression métrique encapsulée à l'intérieur d'une instruction IFNULL renvoie une valeur nulle, le numéro de remplacement spécifié dans le second paramètre de la fonction IFNULL sera inséré à la place de la valeur nulle.
IFNULL est surtout utile dans les cas où une sous-métrique serait désignée par la définition d'une autre métrique. L'encapsulation de la sous-métrique dans une instruction IFNULL empêche la métrique englobante de devenir nulle en raison d'un de ses composants renvoyant une valeur nulle.

Note

Si vous utilisez une métrique comme valeur de rechange, ce rapport ne sera pas calculable en raison d'une définition de métrique incorrecte.

Syntaxe
SELECT IFNULL(…,…)
SELECT IFNULL(metric_expression,replacement_value)

Exemples
SELECT IFNULL(SUM(Amount), 0)
SELECT IFNULL(SUM(FB_Cost + TW_Cost), 0)
SELECT IFNULL(SUM(Amount) + 100, 1)
SELECT IFNULL((SELECT SUM(Payments)
       WHERE Product IN (Explorer, Educational)), 0)

Fonctions de classement

XAE prend à présent en charge la fonction RANK ainsi que le classement basique TOP(n) et BOTTOM(n) (par ex : TOP(5)sales reps).

En combinaison avec différentes formules d'instructions WITHIN, RANK permet de classer les valeurs à l'intérieur de sous-groupes associées aux valeurs d'attributs d'un rapport. Ceci serait utile de classer les 5 meilleurs représentants commerciaux dans chaque région, dans un rapport contenant les données de ces représentants dans toutes les régions commerciales.

Combiné à diverses formules d'instructions WITHIN, RANK permet d'effectuer les suivants :

  • classements denses
  • classement par pourcentage
  • distribution cumulée

Lorsque RANK est utilisé sans instruction WITHIN correspondante (par ex :. SELECT RANK(Avg. Won, la fonction classe séquentiellement toutes les valeurs de métriques dans les lignes d'un rapport, générant ainsi une sortie identique à RANK(...) WITHIN(ALL IN ALL OTHER DIMENSIONS). Lorsqu'une instruction WITHIN est ajoutée à une fonction RANK, elle peut être utilisée avec une des deux formules de paramètres, générant ainsi des sorties différentes. Celles-ci sont explorées dans le tableau ci-dessous.

WITHINSortie
WITHIN ( attr, …, ALL attr, … ALL OTHER EXCEPT … )Rangs à l'intérieur de sous-groupes spécifiés par les attributs contenus dans le paramètre de l'instruction WITHIN.
Rangs à l'intérieur des clusters de dimensionnalité actuelle modifiés à l'aide des règles spécifiées, c'est-à-dire classement à l'intérieur du groupe. Respect de la dimensionnalité de rapport spécifiée dans HOW. Toute instruction qui peut être incluse dans la clause BY peut être utilisée ici.
WITHIN (CURRENT)Les rangs à l'intérieur de la dimensionnalité actuelle ne prennent pas en compte la dimensionnalité de rapport depuis HOW. Chaque ligne du rapport est traitée comme groupe distinct et la métrique de classement fournira ainsi une valeur seulement, ici 1, comme résultat dans toutes les lignes. Très peu utile avec le classement TOP/BOTTOM.

La syntaxe complète de la fonction RANK est décrite dans le texte suivant.

RANK

Description
La fonction de classement renvoie un rang numérique pour les valeurs de métriques de chaque rapport par ordre croissant [ASC] (valeur la plus petite classée en premier) ou par ordre décroissant [DESC] (valeur la plus grande classée en premier). L'ordre croissant est la valeur par défaut, pour les cas où un ordre n'est pas explicitement spécifié.
Une fonctionnalité clé de la fonction RANK est le mot-clé WITHIN, qui permet d'effectuer des classements de plusieurs sous-groupes d'attributs à l'intérieur d'un seul rapport.

Syntaxe
SELECT RANK(…) [ASC|DESC] [WITHIN(…)]

SELECT RANK(metric)
SELECT RANK(metric) WITHIN( CURRENT )
SELECT RANK(metric) WITHIN( Attribute_1, Attribute_2, [...] )
SELECT RANK(metric)WITHIN( any BY statement )

Exemples
SELECT RANK(Avg. Won)
SELECT RANK(Amount) ASC WITHIN(Year(Closed))
SELECT RANK(Amount[SUM])WITHIN(CURRENT)
SELECT RANK(Amount[SUM])WITHIN(ALL OTHER)

Comme avec RANK, les fonctions de classement TOP et BOTTOM peuvent être utilisées sans instruction WITHIN pour le classement qui ne tient pas compte des sous-groupes à l'intérieur d'un rapport. L'ajout de formules de WITHIN à TOP et BOTTOM permet les classements qui ne comprennent que les valeurs n supérieure ou inférieure à l'intérieur de chaque sous-groupe dans la sortie de rapport final.

WHERE TOP|BOTTOM (n) IN

Description
Ces rangs TOP et BOTTOM sont une version spécifique des fonctions de classement. Permettra de classer et de filtrer le résultat d'une métrique spécifique en fonction des mots-clés TOP ou BOTTOM. Sa syntaxe requiert un mot-clé SELECT précédant la métrique qui suit IN. Elle interprète la métrique de classement comme un sous-rapport.

Note

Prend désormais en charge les paramètres de pourcentage à la place de n.

Syntax
SELECT … WHERE TOP(…) IN … WITHIN …
SELECT metric1 WHERE TOP(n) IN (SELECT Metric2 BY A1, A2...) WITHIN (...)

Exemples
SELECT Amount WHERE TOP(5) IN (SELECT Avg. Won BY Product)

Mais nous prenons également en charge le mot-clé OF au lieu de IN. La syntaxe devient alors plus simple et la convivialité augmente également. La différence est également le mode d'interprétation des métriques dans l'infrastructure principale. Le mot-clé OF permet le classement de plusieurs métriques et interprète la métrique comme sous-métrique, par rapport à IN qui nécessite la commande SELECT et interprète la métrique de classement comme un sous-rapport.

WHERE TOP|BOTTOM (n) OF

Description
Ces rangs TOP et BOTTOM sont une version spécifique des fonctions de classement. Permettra de classer et de filtrer le résultat d'une métrique spécifique en fonction des mots-clés TOP ou BOTTOM. Permet le classement de plusieurs métriques et interprète la « métrique » comme une sous-métrique.

Syntaxe
SELECT … WHERE TOP(…) OF … [WITHIN …]
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... )
SELECT metric1 WHERE [TOP|BOTTOM](n) OF ( M1, ... ) WITHIN ( ... )Stockage des données spécifiques du projet

Exemples
SELECT Amount WHERE TOP(5) OF (Avg. Won)
SELECT Won WHERE TOP(10) OF (Won) WITHIN(Region)

SELECT Amount WHERE BOTTOM(5) OF (Lost) 
                            WITHIN(Region, Year (closed))

WHERE TOP|BOTTOM (n%) OF

Description
Les classements en pourcentage sont semblables à tous les autres mots-clés TOP et BOTTOM mais en utilisant le signe % dans la spécification du paramètre N de classement TOP|BOTTOM.

Syntaxe
SELECT … WHERE [TOP|BOTTOM](n%)
SELECT metric1 WHERE [TOP|BOTTOM](n%)

Exemples
SELECT Amount WHERE TOP(5%) OF (Amount) AND Product=Explorer
SELECT RANK(Top 5% parent) WHERE TOP(50%) OF (Top 5% parent)