Scénario de test & Cas d'usage
Agregación de datos y cálculos estadísticos resumidos.
Descubrir todas las acciones de aggregationCreación de una tabla de transacciones de ventas simulada con información de tienda, categoría, fecha y monto.
| 1 | DATA casuser.VENTAS_DIARIAS; |
| 2 | FORMAT Fecha_Venta date9.; |
| 3 | DO ID_Tienda = 1 to 5; |
| 4 | DO Categoria_Producto = 'Frutas', 'Lácteos', 'Panadería'; |
| 5 | DO i = 1 to 100; |
| 6 | ID_Transaccion = _n_; |
| 7 | Fecha_Venta = today() - int(rand('UNIFORM')*30); |
| 8 | Monto_Venta = 5 + rand('UNIFORM') * 100; |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | END; |
| 12 | END; |
| 13 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | list tables incaslib='casuser'; |
| 4 | QUIT; |
| 5 |
| 1 | PROC CAS; |
| 2 | aggregation.aggregate / |
| 3 | TABLE={name='VENTAS_DIARIAS', groupBy={'ID_Tienda', 'Categoria_Producto'}}, |
| 4 | casOut={name='RESUMEN_VENTAS', caslib='casuser', replace=true}, |
| 5 | varSpecs=[ |
| 6 | {name='Monto_Venta', agg='SUM', newName='Ventas_Totales'}, |
| 7 | {name='Monto_Venta', agg='MEAN', newName='Venta_Promedio'}, |
| 8 | {name='ID_Transaccion', agg='N', newName='Numero_Transacciones'} |
| 9 | ]; |
| 10 | RUN; |
| 11 | QUIT; |
| 1 | |
| 2 | PROC PRINT |
| 3 | DATA=casuser.RESUMEN_VENTAS(obs=10); |
| 4 | RUN; |
| 5 |
Se espera una tabla de salida 'RESUMEN_VENTAS' en CASUSER. Cada fila de esta tabla debe contener una combinación única de 'ID_Tienda' y 'Categoria_Producto', junto con tres columnas calculadas: 'Ventas_Totales' (la suma de 'Monto_Venta'), 'Venta_Promedio' (la media de 'Monto_Venta') y 'Numero_Transacciones' (el recuento de transacciones).