Ma question est similaire à celle du message suivant:
Trouvez la plus grande valeur chez les entrées répétées dans une table SQL a> mais c'est pour MySQL et et je ne peux pas comprendre comment elle se traduit par SQLite. p> Je veux obtenir la valeur max de Ma table avec les deux colonnes que je m'intéresse. P> pages code> de ma table Metadata code> avec plusieurs File_ids code> et plusieurs entrées p> String[]cols = {"file_id","pages"};
String groupBy = {"pages"};
3 Réponses :
Que diriez-vous de cette p>
Sélectionnez File_ID distincte, pages de Tbl_Test Group par File_ID P> blockQuote>
résultat p>
Cela ne fonctionnera pas; L'utilisation d'une valeur non groupée et non agrégée dans une sélection groupée choisira une ligne arbitraire du groupe pour les valeurs. Op veut la valeur maximale de la page. Voir mon commentaire dans la question de niveau supérieur pour ce que cela devrait être.
@Shawn je ne suis pas sûr de quoi voulons exactement. Il change de déclaration. Ma commande SQL produite résultat selon l'OP mentionné dans la section de ce que je cherche est b>
La requête étrange m de marche. Seule la clé de groupe et la colonne d'agrégat peuvent être dans la liste Sélectionner une liste, si vous utilisez le groupe par. Donc, les pages sont une colonne de sélection invalide.
La requête correcte doit être p>
Pas étrange que cela fonctionne; C'est juste comment fonctionne SQLite. De La documentation : Chaque expression dans l'ensemble de résultats est ensuite évaluée une fois pour chaque groupe de lignes. Si l'expression est une expression globale, elle est évaluée sur toutes les lignes du groupe. Sinon, il est évalué contre une rangée unique choisie arbitraire de l'intérieur du groupe. I>
Ceci utilise le remplacer Query () code> Méthode: dB code> avec votre variable SQLITEOPENHELER. p> p>
Je vais essayer je pense que je pense que le groupe ne possède pas la parenthèse et pouvez-vous s'il vous plaît upvote ma question pour le faire 0 idk pourquoi quelqu'un devait levoir.
Édité, GroupBy doit être un tableau et a besoin des crochets, à droite.
Sélectionnez * à partir de métadonnées où pages = (Sélectionnez max (pages) à partir de métadonnées) code>?Ok que diriez-vous du format que j'ai écrit dans ... pas de problème avec une requête crue, mais j'aimerais savoir comment ce serait dans le format de requête normal. Merci pour votre commentaire
Taseer je ne vois aucune mention de
file_id code> dans votre requêteSélectionnez File_ID, max (pages) du groupe de métadonnées par fichier fichier_id par fichier_id code>Nope Shawn .... ne pouvait pas lire la rangée 0, Col -1 de Cursorwindow. Assurez-vous que le curseur est correctement initialisé avant d'accéder aux données de celui-ci. Je ne comprends pas ce qui me manque
Je réinitialise mon application et lisez un PDF deux fois avec des pages différentes pour la première fois que 10 pages et la seconde était 20, alors j'étais censé avoir 20 comme maximum, mais je reçois l'erreur ci-dessus avec votre requête et quand j'ai vérifié la taille du curseur. La taille est 2 au lieu de 1, comme je l'ai dit, j'ai ouvert le même PDF deux fois, qui a la Dame File_ID.