J'ai une base de données qui stocke le rang d'un élément. Le rang est une valeur absolue qui sera correcte si tous les éléments sont pris en compte.Comment puis-je compter le nombre de lignes avant une certaine ligne dans sqlite?
Si je seulement besoin d'un sous-ensemble soit quatre de ces éléments qu'il me donne quelque chose comme
Rank RowId in the whole Table
---------------
4 114
8 71
70 16
83 7
J'ai besoin maintenant un int spécifiant que le rang dans le sous-ensemble où le rang maximum est le nombre d'éléments dans le sous-ensemble dans mon exemple 1,2,3,4.
Existe-t-il un moyen d'y parvenir dans ma requête sqlite? J'ai seulement besoin d'un des rangs dans mon activité. J'ai pensé à classer les résultats de la requête par rang et ensuite obtenir la position de l'élément que je veux classer à ce moment-là. Mais comment pourrais-je y parvenir avec sqlite?
J'ai essayé de créer une table temporaire et insérez le sous-ensemble dans comme ceci:
CREATE TABLE rang (ID); INSERT INTO position SELECT ID parmi les éléments WHERE ITEM_ID = 3 ORDER BY POSITION; SELECT RowID du rang WHERE ID = 9; DROP TABLE rang;
Cela fonctionne dans le Gestionnaire SQLite et renvoie le nombre correct. Mais si je le fais dans Android en échoue disant qu'il n'y a pas de rang de table lors de la compilation requête
07-07 13:35:46.150: ERROR/AndroidRuntime(2047): Caused by: android.database.sqlite.SQLiteException: no such table: rank: , while compiling: SELECT RowID from rank WHERE ID = 9
Pourriez-vous s'il vous plaît poster votre schéma, les valeurs d'échantillon, et le résultat attendu que vous voulez voir. – Pentium10