2010-04-16 4 views
1

J'essaie quelque chose comme ceci:récupérons les enregistrements en utilisant par groupe de AppEngine datastore

result = db.GqlQuery("SELECT * FROM myDataMode COUNT(Employee) GROUP BY(Department) WHERE Salary > :1"10000) 

Je reçois l'erreur:

BadQueryError: Parse Error: Expected no additional symbols at symbol count 

Peut-on s'il vous plaît me aider.

+0

Cette déclaration n'est pas * SQL juridique ou * GQL. Comme les états, GQL n'est pas la même chose que SQL. Mais votre instruction ne fonctionnera pas non plus dans une base de données SQL régulière, car vous ne pouvez pas sélectionner * et utiliser un groupe par. Vous devez spécifier les colonnes que vous voulez sélectionner. –

+0

Qu'essayez-vous réellement de réaliser avec cette requête? Nous pouvons peut-être vous aider à en écrire un qui fonctionnera. –

+0

Merci Peter Je sais que GQL est différent de SQL. Mon problème est très simple J'ai un modèle Employé que contient des colonnes (Emp_id, Nom, Department_id) Maintenant, je veux compter les employés travaillant dans chaque département. –

Répondre

5

GQL n'est pas SQL. Il n'a pas COUNT() ou GROUP BY(). Voir le GQL reference pour plus d'informations.

1

Depuis GQL n'a pas COUNT et GROUP BY fonction. donc je conçu une solution pour elle:

result = db.GqlQuery(SELECT * form Employee) 

Faire un tableau qui ont des départements uniques du résultat:

if result.Department not in array: 
    array.append(result.Department) 
for department in array: 
    query = db.GqlQuery(SELECT * form Employee WHERE Department = :1,department) 
    print "In" + department + query.count() +"Employees are working" 
Questions connexes