I am attempting to order based on two fields within an arcpy cursor so that I can then eventually delete the rows I do not want. Below is an example of the table I am working with:

Within each grouping of "El_Season" that is the same (in this case OIDs 1&2 and OIDs 3&4) I would like to sort based on "COUNT_OccProb" and by "prob_code" in descending order within a cursor so that once sorted, I can delete the extras within groups that have lower values. Currently, the code does not sort successfully and is just printing OIDs 2 and 4 as the extras where it should be printing OIDs 1 and 3 if working as I would like. This is the code that I am working with:
<SPAN class="">case_fields </SPAN><SPAN class="">=</SPAN><SPAN class=""> </SPAN><SPAN class="">[</SPAN><SPAN class="">"El_Season"</SPAN><SPAN class="">]
</SPAN><SPAN class="">max_field </SPAN><SPAN class="">=</SPAN><SPAN class=""> </SPAN><SPAN class="">[</SPAN><SPAN class="">"COUNT_OccProb"</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">"prob_code"</SPAN><SPAN class="">]
</SPAN><SPAN class="">sql_orderby </SPAN><SPAN class="">=</SPAN><SPAN class=""> </SPAN><SPAN class="">"ORDER BY {}, {} DESC"</SPAN><SPAN class="">.</SPAN><SPAN class="">format</SPAN><SPAN class="">(</SPAN><SPAN class="">case_fields</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">","</SPAN><SPAN class="">.</SPAN><SPAN class="">join</SPAN><SPAN class="">(</SPAN><SPAN class="">max_field</SPAN><SPAN class="">))
</SPAN><SPAN class=""></SPAN><SPAN class="">with</SPAN><SPAN class=""> arcpy</SPAN><SPAN class="">.</SPAN><SPAN class="">da</SPAN><SPAN class="">.</SPAN><SPAN class="">UpdateCursor</SPAN><SPAN class="">(</SPAN><SPAN class="">statistics</SPAN><SPAN class="">,</SPAN><SPAN class=""> </SPAN><SPAN class="">"*"</SPAN><SPAN class="">,</SPAN><SPAN class=""> sql_clause</SPAN><SPAN class="">=(</SPAN><SPAN class="">None</SPAN><SPAN class="">,</SPAN><SPAN class=""> sql_orderby</SPAN><SPAN class="">))</SPAN><SPAN class=""> </SPAN><SPAN class="">as</SPAN><SPAN class=""> cursor</SPAN><SPAN class="">:
</SPAN><SPAN class="">case_func </SPAN><SPAN class="">=</SPAN><SPAN class=""> itemgetter</SPAN><SPAN class="">(*(</SPAN><SPAN class="">cursor</SPAN><SPAN class="">.</SPAN><SPAN class="">fields</SPAN><SPAN class="">.</SPAN><SPAN class="">index</SPAN><SPAN class="">(</SPAN><SPAN class="">fld</SPAN><SPAN class="">)</SPAN><SPAN class=""> </SPAN><SPAN class="">for</SPAN><SPAN class=""> fld </SPAN><SPAN class="">in</SPAN><SPAN class=""> case_fields</SPAN><SPAN class="">))
</SPAN><SPAN class=""></SPAN><SPAN class="">for</SPAN><SPAN class=""> key</SPAN><SPAN class="">,</SPAN><SPAN class=""> group </SPAN><SPAN class="">in</SPAN><SPAN class=""> groupby</SPAN><SPAN class="">(</SPAN><SPAN class="">cursor</SPAN><SPAN class="">,</SPAN><SPAN class=""> case_func</SPAN><SPAN class="">):
</SPAN><SPAN class=""> next</SPAN><SPAN class="">(</SPAN><SPAN class="">group</SPAN><SPAN class="">)
</SPAN><SPAN class=""> </SPAN><SPAN class="">for</SPAN><SPAN class=""> extra </SPAN><SPAN class="">in</SPAN><SPAN class=""> group</SPAN><SPAN class="">:
</SPAN><SPAN class=""> </SPAN><SPAN class="">print</SPAN><SPAN class=""> extra </SPAN><SPAN class=""># currently have it printing extra instead of deleting for testing purposes</SPAN>