Oracle circular average user aggregate function