2016-06-23 7 views
-1

Behandeln Sie die bereitgestellten als Pseudocode.Sortieren von Abfragen mit Operationen (Android - Parse.com)

query.orderByDescending(0.25 * "likesCount" + 0.75 * "reblogsCount"); 

Warum kann ich nicht ausführen, um eine Operation auf einer Abfrage in einer solchen Art und Weise, um eine Liste durch den gewichteten Durchschnitt von zwei verschiedenen Spalten zu sortieren?

Muss ich wirklich eine neue Spalte erstellen, sagen wir "score", aktualisieren Sie sie bei jedem Like- oder Reblog-Event, und sortieren Sie dann nach dieser Spalte?

Gibt es einen Weg, um zu erreichen, was ich in Parse in ein paar Zeilen Code möchte? Wenn nicht, was ist die Alternative?

Antwort

1

Sie können Unterabfragen verwenden.

Etwas ähnlich dem folgenden Pseudo-Code:

select * from (
    select field1, field2, 0.25 * likesCount + 0.75 * reblogsCount as sortField 
    from table 
) order by sortField 

Sie können auch Gruppen mit Klammern Ihre Sortierbedingung:

select * 
from table 
order by (0.25 * likesCount + 0.75 * reblogsCount) 
+0

ich den Wert dieser Methode aus einer SQL-Perspektive sehen können, aber ich bin mir nicht sicher, ob dies in Parse möglich ist, da die abgefragte Spalte durch eine Zeichenkette referenziert wird und Sie nicht mit Zeichenketten arbeiten können. – santafebound

Verwandte Themen