kphoen/propel-multiple-aggregate-column-behavior

This package is abandoned and no longer maintained. No replacement package was suggested.

Propel Behavior that allows multiple aggregate columns on a single table

1.0.0 2012-12-02 14:21 UTC

This package is auto-updated.

Last update: 2022-02-01 12:22:30 UTC


README

Build Status

This behavior is an almost exact copy of the bundled aggregate_column behavior, with the addition of allowing multiple aggregate columns on a single table - something not possible with the existing behavior.

This behaviors aims to be fully compatible with the original aggregate_column behavior.

Status

This project is DEPRECATED and should NOT be used.

If someone magically appears and wants to maintain this project, I'll gladly give access to this repository.

Working with several aggregates

The syntax is pretty straightforward :

<behavior name="multiple_aggregate_column">
    <parameter name="count" value="2" />

    <parameter name="name1" value="amount_total" />
    <parameter name="foreign_table1" value="invoice_item" />
    <parameter name="expression1" value="SUM(price)" />

    <parameter name="name2" value="amount_paid" />
    <parameter name="foreign_table2" value="invoice_payment" />
    <parameter name="expression2" value="SUM(amount)" />
    <parameter name="condition2" value="status = 1" />
</behavior>

If you want to define several aggregates, the count parameter is mandatory. You will then be able to define as many aggregates as you want.

Working with a single aggregate

However, if you only have one aggregate, the count parameter can be omitted and the behavior recognises the same syntax as the old aggregate_column behavior:

<behavior name="multiple_aggregate_column">
    <parameter name="name" value="amount_total" />
    <parameter name="foreign_table" value="invoice_item" />
    <parameter name="expression" value="SUM(price)" />
</behavior>

Advanced usage

For further information, please refer to the official Aggregate Column Behavior documentation.

Credits

  • Nathan Jacobson: original author of this behavior. I used his work as a base, made it fully functionnal and tested it.

Licence

MIT, see the LICENCE file.