Author: bpoussin Date: 2012-01-05 17:56:09 +0100 (Thu, 05 Jan 2012) New Revision: 1286 Url: http://nuiton.org/repositories/revision/wikitty/1286 Log: ajout de la documentation sur les d'agregats dans le select (AVG, COUNT, MAX, MIN, SUM) Modified: trunk/src/site/rst/user/query.rst Modified: trunk/src/site/rst/user/query.rst =================================================================== --- trunk/src/site/rst/user/query.rst 2012-01-05 11:18:10 UTC (rev 1285) +++ trunk/src/site/rst/user/query.rst 2012-01-05 16:56:09 UTC (rev 1286) @@ -326,7 +326,7 @@ lieu de l'id. Le select doit toujours être le premier élément de la condition ou du in. Dans l'exemple suivant au lieu de retourner l'id des employés en CDI, on retourne leur nom. Si deux personnes avait le même nom, ce nom - ne serait retourné qu'une seul fois.:: + ne serait retourné qu'une seule fois.:: WikittyQuery q = new WikittyQueryMaker() select("Employee.name").eq("Employee.contract", "CDI").end(); @@ -344,6 +344,57 @@ WikittyQuery q = WikittyQueryParser.parse( "Person.birthday IN (SELECT Event.date WHERE Event.country LIKE france)"); +Il est possible d'ajouter des fonctions d'aggrégats dans le Select. Dans ce cas +le résultat retourné ne contient qu'un seul élément. L'aggrégat est fait les élements +retournés (de first à first+Limit) + +* AVG fait la moyenne des valeurs, il faut donc que le champs sélectionnés soit + un Numeric:: + + WikittyQuery q = new WikittyQueryMaker() + .select("Person.age", Aggregate.AVG).eq("Person.firstname", "Jean").end(); + + WikittyQuery q = WikittyQueryParser.parse( + "SELECT AVG Person.age WHERE Person.firstname=Jean"); + +* COUNT retourne le nombre d'élément retourné:: + + WikittyQuery q = new WikittyQueryMaker() + .select("Person.age", Aggregate.COUNT).eq("Person.firstname", "Jean").end(); + + WikittyQuery q = WikittyQueryParser.parse( + "SELECT COUNT Person.age WHERE Person.firstname=Jean"); + +* MAX retourne la plus grande valeur. MAX peut-etre utilisé sur tout type de champs + mais il est plus pertinant sur les champs: Numeric, Date, String:: + + // on recherche le plus jeune (plus grande date) des personnes s'appelant Jean + WikittyQuery q = new WikittyQueryMaker() + .select("Person.birthday", Aggregate.MAX).eq("Person.firstname", "Jean").end(); + + WikittyQuery q = WikittyQueryParser.parse( + "SELECT MAX Person.birthday WHERE Person.firstname=Jean"); + +* MIN retourne la plus petite valeur. MIN peut-etre utilisé sur tout type de champs + mais il est plus pertinant sur les champs: Numeric, Date, String:: + + // on recherche le plus agé (plus petite date) des personnes s'appelant Jean + WikittyQuery q = new WikittyQueryMaker() + .select("Person.birthday", Aggregate.MIN).eq("Person.firstname", "Jean").end(); + + WikittyQuery q = WikittyQueryParser.parse( + "SELECT MIN Person.birthday WHERE Person.firstname=Jean"); + +* SUM retourne la somme de tous les nombres. Il faut donc que le champs sélectionné + soit un Numeric:: + + // fait la somme des facture depuis le début d'année + WikittyQuery q = new WikittyQueryMaker() + .select("Invoice.amount", Aggregate.SUM).ge("Invoice.date", "01/01/2012").end(); + + WikittyQuery q = WikittyQueryParser.parse( + "SELECT SUM Invoice.amount WHERE Invoice.date>=01/01/2012"); + Recherche sur les arbres ------------------------
participants (1)
-
bpoussin@users.nuiton.org