composer.json
{ "name": "flow-php/examples", "description": "Flow PHP - Examples", "license": "MIT", "type": "library", "require": { "flow-php/etl": "1.x-dev" } }
code.php
<?php declare(strict_types=1); use function Flow\ETL\DSL\{count, data_frame, from_array, ref, to_stream}; require __DIR__ . '/vendor/autoload.php'; data_frame() ->read(from_array([ ['id' => 1, 'group' => 'A'], ['id' => 2, 'group' => 'B'], ['id' => 3, 'group' => 'A'], ['id' => 4, 'group' => 'B'], ['id' => 5, 'group' => 'A'], ['id' => 6, 'group' => 'B'], ['id' => 7, 'group' => 'A'], ['id' => 8, 'group' => 'B'], ['id' => 9, 'group' => 'A'], ['id' => 10, 'group' => 'B'], ])) ->groupBy(ref('group')) ->aggregate(count(ref('group'))) ->write(to_stream(__DIR__ . '/output.txt', truncate: false)) ->run();
+-------+-------------+ | group | group_count | +-------+-------------+ | A | 5 | | B | 5 | +-------+-------------+ 2 rows