Crea otro objeto vtable agrupada con los porcentajes de los datos de la vtable pasada.
1 vtable.calculatePercentGroupBy
<vtable.calculatePercentGroupBy
name='name'
group='group'
measure='measure'
percent='percent'
/>
Attributes | |||||
---|---|---|---|---|---|
Name | Type | Required | Default | Description | |
Aname | string | Nombre de la vtable. | |||
Agroup | string | Columna de agrupación. | |||
Ameasure | string | Columna para el cálculo del porcentaje. | |||
Apercent | string | Columna donde se mostrara el porcentaje. |
Returns | |
---|---|
Type | Description |
Vtable | Retorna una nueva tabla virtual agrupada con los porcentajes de los datos de la vtable pasada. |
Example
Ejemplo de cálculo y agrupación de los porcentajes en una vtable.
Copy
<xsql-script> <body> <vtable name='v1'> <column name='country' type='char' /> <column name='labcode' type='char' /> <column name='sales' type='decimal' /> <column name='percent_of_sales' type='decimal' scale='2' /> </vtable> <vtable.insert name='v1'> <matrix> { "FR", "LAB1", "100", "0" } { "FR", "LAB2", "200", "0" } { "FR", "LAB3", "220", "0" } { "FR", "LAB4", "400", "0" } { "PT", "LAB1", "40", "0" } { "PT", "PAB2", "60", "0" } { "DE", "DAB1", "20", "0" } { "DE", "DAB2", "22", "0" } { "DE", "DAB3", "23", "0" } </matrix> </vtable.insert> <println> <v1 /> </println> <println> <vtable.calculatePercentGroupBy name='v1' group='country' measure='sales' percent='percent_of_sales' /> </println> </body> </xsql-script>
Este script mostrara:
Copy
+-------+-------+-----+----------------+ |country|labcode|sales|percent_of_sales| +-------+-------+-----+----------------+ |FR |LAB1 | 100| 0.00| |FR |LAB2 | 200| 0.00| |FR |LAB3 | 220| 0.00| |FR |LAB4 | 400| 0.00| |PT |LAB1 | 40| 0.00| |PT |PAB2 | 60| 0.00| |DE |DAB1 | 20| 0.00| |DE |DAB2 | 22| 0.00| |DE |DAB3 | 23| 0.00| +-------+-------+-----+----------------+ +-------+-------+-----+----------------+ |country|labcode|sales|percent_of_sales| +-------+-------+-----+----------------+ |FR |LAB1 | 100| 10.87| |FR |LAB2 | 200| 21.74| |FR |LAB3 | 220| 23.91| |FR |LAB4 | 400| 43.48| |PT |LAB1 | 40| 40.00| |PT |PAB2 | 60| 60.00| |DE |DAB1 | 20| 30.77| |DE |DAB2 | 22| 33.85| |DE |DAB3 | 23| 35.38| +-------+-------+-----+----------------+