[rules-users] Disting and group by
Edson Tirelli
tirelli at post.com
Wed Aug 11 10:04:31 EDT 2010
"Group by" is implicit in rules, just by writing patterns in order. So,
if you write a rule that starts with Customer(), it will automatically do a
"group by" customer:
when
Customer(...)
...
then
"Distinct" is a bit problematic, as we have no explicit distinct
functionality (I have an open ticket for that:
https://jira.jboss.org/browse/JBRULES-2640) but in some cases you can use
collectSet for similar results.
In your case, you can go with Wolfgang's suggestion, or using
accumulate:
declare ReportForDate
custNo : String
date : Date
end
rule "insert report dates"
salience 10
dialect "mvel"
when
Customer( $pd : purchaseDate, $custNo : custNo )
not( ReportForDate( custNo == $custNo, date == $pd ) )
then
with( $r = new ReportDate() ) {
custNo = $custNo,
date == $pd
}
insert( $r );
end
rule "customers that purchased more than 100 on a given date"
when
ReportDate( $pd: date, $cn : custNo )
Number( $total : doubleValue > 100 ) from accumulate(
Customer( $custNo == $cn, purchaseDate == $pd, $am : amount ),
sum( $am ) )
then
// do something as the customer $cn purchased $total on $pd
end
Edson
2010/8/10 vijrams <mailrvijay at gmail.com>
>
> Hi
>
> i have an object customer (purchaseDate, CustNo, Amount)
>
> i need to find the customers who purchased more than X amount in each date)
> ie group by customer then group by date and then sum of amount
>
>
> how do you write a rule for this
>
> thanks
> Vijay
> --
> View this message in context:
> http://drools-java-rules-engine.46999.n3.nabble.com/Disting-and-group-by-tp1076615p1076615.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100811/2537ab50/attachment.html
More information about the rules-users
mailing list