Not sure how much control you have over your data tables, but this could be accomplished through simple views.
For instance, I have a table with all my company's employees listed including those that have been terminated.
The terminated field is a 1 or a 0, so I can easily build one view that simply does a SUM([Terminated]) AS Total_Count_of_Fires and just returns a count of the total number of fired employees.
I then create a new query which groups the Employees table by department, grabs only fired employees and then does a count on the ID field to get the number of fired employees for that department.
I then add that first view I built into this new one (no need to link any fields for this use) and add that Total_count_of_fires field.
So, my end result looks something like:
Department | # of Fires | Total # of Fires
Marketing | 3 | 25
IT | 12 | 25
Executives | 2 | 25
HR | 8 | 25
Using this data for your example, I could sort by the # of fires field and then easily do a percentage by divided #ofFires/Total#ofFires.
This really isn't a CRYSTAL fix persay, but it might help do that sort you needed.