Fixed networkGeolocationCounts for multiple users

This commit is contained in:
Risto Lahtela 2019-02-01 14:38:19 +02:00 committed by Rsl1122
parent 26cd95cab8
commit fe29f44680

View File

@ -183,19 +183,16 @@ public class ServerAggregateQueries {
public static Query<Map<String, Integer>> networkGeolocationCounts() {
String subQuery1 = "SELECT " +
GeoInfoTable.ID + ", " +
GeoInfoTable.GEOLOCATION + ", " +
GeoInfoTable.LAST_USED + ", " +
GeoInfoTable.LAST_USED +
" FROM " + GeoInfoTable.TABLE_NAME;
String subQuery2 = "SELECT " +
GeoInfoTable.ID + ", " +
"MAX(" + GeoInfoTable.LAST_USED + ") as m" +
" FROM " + GeoInfoTable.TABLE_NAME +
" GROUP BY " + GeoInfoTable.USER_UUID;
String sql = "SELECT " + GeoInfoTable.GEOLOCATION + ", COUNT(1) as c FROM (" +
"(" + subQuery1 + ") AS q1" +
" INNER JOIN (" + subQuery2 + ") AS q2 ON q1.id = q2.id)" +
" WHERE " + GeoInfoTable.LAST_USED + " = m" +
" INNER JOIN (" + subQuery2 + ") AS q2 ON q1.last_used = q2.m)" +
" GROUP BY " + GeoInfoTable.GEOLOCATION;
return new QueryAllStatement<Map<String, Integer>>(sql) {