So i have a table (linked below) and for each unique PropertyID, i need to find the highest percentage value and extract that to a different table. I need to retain all the other attribute information as well, (which summarize or dissolve doesn't do).

I'm using ArcMap 10.3


  • Yes but summarize does save the ID so the solution is to run summarize and then join it back to the original table! – jbchurchill Nov 9 '16 at 20:32
  • It'll save the propertyID, but i'd lose the rest of the information. If I joined back to the original i'll just end up with the same result. The JOIN id is what i need to preserve for each propertyID – somebodyonce Nov 9 '16 at 20:34

You just need to find the highest percentage out of that table? Select the Percentage field Column, Right click the Percentage Field and hit Sort Descending, the highest value will be on the top.

I think this is what you're asking if not please be more specific.

| improve this answer | |
  • I need the highest percentage for each unique PropertyID attribute. – somebodyonce Nov 9 '16 at 20:38
  • I only see one percentage field are there several each with different values. – NULL.Dude Nov 9 '16 at 20:39
  • Maybe i'm not very clear. There's only one percentage field, but for each unique ID (in the propertyID field) i need to field the value that corresponds to the highest percentage. So PropertyID 1 would be Percentatge 69.39 2 would be 81.44 and so on. Summarize would do that but i'll lose the information from the other fields which i need to keep. – somebodyonce Nov 9 '16 at 20:42

One year later the propability is high you found a solution for your problem but since my previous answer gets downvoted (admittingly righteously) I want to share a more proper solution:

The following script creates a stack of temporary feature layers each for all entries that share the same PropertyID (it's a simple range-loop since the values seem to be just integers). Then it copies from each temporary feature layer the one with the highest PERCENTAGE value ito a new featureclass or whatever is needed:

import arcpy
#this is your Parcel_Test_SpatialJoin_Tabu1:
parcel = arcpy.GetParameterAsText(0)

#returns the maximum value in the field "PERCENTAGE":
def max_percent(input): 
    cursor = arcpy.SearchCursor(input)
    percentlist = []
    for row in cursor:
        percentages = row.getValue("PERCENTAGE")
    return max(percentlist)
#returns a temporary feature lyer resulting of expr:   
def sel_n(inputFC, expr, PropertyID):
    temp_lyr = "temp_lyr_%s" %(PropertyID)
    arcpy.MakeFeatureLayer_management(inputFC,temp_lyr, expr)
    return temp_lyr

#list to filled with the desired entries:
max_per_id = []
target = either_a_new_FC_or_a_table
#since the values of "PropertyID" seem to be all integers:
for i in range(insert_the_highest_value_of_PropertyID_here):
    expr = "PropertyID = %s" %(i)
    arcpy.Append_management (inputs, target, "TEST")

NOTE1: I didn't test this script, I just fiddled it together from what I have since i am currently working on a similar issue.

NOTE2: If you really need ALL values of a selection "PropertyID = X" preserved I suggest to either expand the script with arcpy.Dissolve_Management in the max_percent function or insert the other values you want to keep in seperate fields programmatically. Since I dont know your requirements for your result i cant help you further.

NOTE3: I am sure there might be a less copious approach to this - perhaps even in model builder.

NOTE4: Happy Halloween.

| improve this answer | |

You could try using Summary statistics, and have PropertyID as your {case_field}

| improve this answer | |

Dissolve Toolbox: PropertyID = Dissolve Field; PERCENTAGE = Statistics Field; Statistic Type = MAX See here.

| improve this answer | |
  • Dissolve deletes all other fields. I need that data as well so that doesn't work. – somebodyonce Nov 10 '16 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.