2016-07-12 7 views
0

Ich habe eine Spalte von Werten in SQLite.Vergleichen Sie Spalteneintrag mit jedem anderen Eintrag in der gleichen Spalte

value 
----- 
1 
2 
3 
4 
5 

Für jeden Wert möchte ich wissen, wie viele der anderen Werte größer sind und das Ergebnis anzeigen. Z.B. Für Wert 1 gibt es 4 Einträge mit höheren Werten.

value | Count 
------------- 
    1 | 4 
    2 | 3 
    3 | 2 
    4 | 1 
    5 | 0 

Ich habe versucht, Select-Anweisungen verschachtelt und mit dem Count (*) Funktion aber ich scheine nicht die richtigen Ebene extrahieren zu können. Irgendwelche Vorschläge würden sehr geschätzt.

Vielen Dank

Antwort

1

Sie diese mit einer korrelierten Unterabfrage in SQLite tun kann:

select value, 
     (select count(*) from t t2 where t2.value > t.value) as "count" 
from t; 

In den meisten anderen Datenbanken, würden Sie eine Ranking-Funktion wie rank() oder dense_rank() verwenden, aber SQLite nicht unterstützen diese Funktionen.

Verwandte Themen