select *
from myQuery
Order by Total desc
for(i=1; i lte arrayLen(variables.clientdata);i=i+1){
if(variables.clientdata[i].clientid is arguments.clientid) ret=variables.clientdata[i];
}
for(n=1; n lte arrayLen(arguments.theData); n=n+1){
if(not arrayLen(arrayOut)){
tmp=structNew();
tmp.data=arguments.theData[n][sorton];
tmp.total=1;
result=arrayAppend(arrayOut,tmp);
} else {
isInStruct=0;
for(m=1; m lte arrayLen(arrayOut); m=m+1){
if(arrayOut[m].data is arguments.theData[n][sorton]) isInStruct=m;
}
if(isInStruct){
arrayOut[isInStruct].total=arrayOut[isInStruct].total+1;
} else {
tmp=structNew();
tmp.data=arguments.theData[n][sortOn];
tmp.total=1;
result=arrayAppend(arrayOut,tmp);
}
}
}
// Are we tracking the client already?
for(i=1; i lte arrayLen(variables.clientData); i=i+1){
if(variables.clientData[i].clientid is arguments.requestData.clientid) updateFlag=i;
}
if(updateFlag is 0){
result=arrayAppend(variables.clientData,arguments.requestData);
} else {
for(j in arguments.requestData){
variables.clientData[updateFlag][j]=arguments.requestData[j];
}
}
// Trim the array for data older than 24 hours
for(j=arrayLen(variables.clientData); j gt 0; j=j-1){
if(dateDiff("n",variables.clientData[j].LastUpdated,Now()) gte 1440) arrayDeleteAt(variables.clientData,j);
}
for(i=arrayLen(variables.clientData); i gt 0; i=i-1){
if(variables.clientdata[i].IP is arguments.thisIP) arrayDeleteAt(variables.clientdata,i);
}