2010-04-16 24 views
1

我想這樣的東西取記錄:使用組通過從AppEngine上的數據存儲

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

而且我得到錯誤:

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

任何一個可以請幫助我。

+0

這種說法是不合法的SQL *或* GQL。正如將指出的那樣,GQL與SQL不同。但是你的聲明也不能在常規的SQL數據庫中工作,因爲你不能選擇*並使用一個group。您需要指定要選擇的列。 – 2010-04-16 17:06:14

+0

你想用這個查詢實際實現什麼?也許我們可以幫助你寫一個能工作的人。 – 2010-04-16 17:06:46

+0

感謝Peter 我知道GQL與SQL不同。 我的問題是非常笑着 我哈瓦一個模範員工不是包含列(EMP_ID,姓名,部門標識) 現在我想指望員工在各部門的工作。 – 2010-04-17 08:48:44

回答

5

GQL不是SQL。它沒有COUNT()GROUP BY()。有關更多信息,請參閱GQL reference

1

由於GQL沒有COUNTGROUP BY函數。 所以我爲它設計一個解決方案:

result = db.GqlQuery(SELECT * form Employee) 

製造陣列,這將有獨特的部門從結果:

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" 
相關問題