Could you please define 'about 90%' ? Does that mean <= (less than or equal to 90), = (equal to 90), >= (greater than or equal to 90) ? What are your default polling intervals like for SNMP? Is it the default every ten minutes or did you change it to something higher? lower? The thing that initially comes to mind is that the value is teeter tottering back and forth hence the multiple emails.
I'd recommend that you set the advanced alert and put in the checkmark that makes it so the alert condition is not triggered until the value is sustained for xx amount of seconds, minutes or whatever value you define there in the alert condition tab. In this manner you can filter out extraneous teeter tottering. In other words if your CPU spikes above 90% for a brief second and then goes back below 90% then maybe you don't want to be alerted for such behavior. More accurate would be if your device's CPU is sustaining 90% for an extended period of time.
Otherwise if you think the alerts could be triggered from multiple alerts, its possible to go to the database to check which alert definition triggered the alert,and fired off the email(s).
The alert is set for >= to 90.
I was able to catch the alert it looks like it is generating an alert for each volume on the device. A little more digging showed that the "Type of Property to Monitor:" was set to Volume instead of Node. Looks like that was the issue.
Thanks for the tip for the sustaining value. That will help as well.