Let's say this is your data:
data = Transpose@{RandomInteger[10, 20], RandomInteger[5, 20], RandomReal[1, 20]};
TableForm[data, TableHeadings -> Automatic]

Use Part to get only x and y part and GatherBy to gather by x
GatherBy[Part[data, All, {2, 3}], First]
{
{{0, 0.554355}, {0, 0.669234}, {0, 0.673409}}
, {{3, 0.107376}, {3, 0.535935}, {3, 0.836943}, {3, 0.479782}, {3, 0.176511}, {3, 0.966172}, {3, 0.896234}, {3, 0.784782}}
, {{2, 0.319966}, {2, 0.0572314}, {2, 0.450977}}
, {{5, 0.980007}, {5, 0.49463}}
, {{1, 0.0754787}, {1, 0.307566}, {1, 0.77322}}
, {{4, 0.656813}}
}
Now you only need to Map the Mean over the list
Mean /@ GatherBy[Part[data, All, {2, 3}], First]
{
{0, 0.632333}
, {3, 0.597967}
, {2, 0.276058}
, {5, 0.737318}
, {1, 0.385422}
, {4, 0.656813}
}
You can create a function that does that for later use
avgx[data_] := Map[Mean, GatherBy[Part[data, All, {2, 3}], First]]
Meaninstead ofTotalbecause the linked topic is about sum. – Kuba Nov 12 '15 at 13:25