有什麼方法可以在App Engine中使用GROUP
BY,通過GQL或Query
方法嗎?如何在App Engine中使用GROUP BY
我做了一些研究,我讀過,有GQL沒有GROUP BY
在,看起來像沒有也Query
類。
如果有任何資源或任何方法與Python,請讓我知道。
編輯
我讀過也是它可能使GROUP BY
與Map Reduce。如果任何人有這方面的經驗,一個幫助將被接受。
謝謝。
有什麼方法可以在App Engine中使用GROUP
BY,通過GQL或Query
方法嗎?如何在App Engine中使用GROUP BY
我做了一些研究,我讀過,有GQL沒有GROUP BY
在,看起來像沒有也Query
類。
如果有任何資源或任何方法與Python,請讓我知道。
編輯
我讀過也是它可能使GROUP BY
與Map Reduce。如果任何人有這方面的經驗,一個幫助將被接受。
謝謝。
不,數據存儲不支持任何類型的數據庫端處理或聚合。解決方案是在內存中進行所有後期處理。有兩種方法可以在每個請求中或使用map reduce。任何解決方案將始終返回查詢中的所有行,但您獲取行的方式會有所不同。
您不能使用appengine庫執行GROUP BY
查詢。這是數據庫體系結構的失敗,在gereral中(其中Google的BigTable是其中一個實現)。
根據您使用GROUP BY
所做的工作,另一種方法可能適合您的需求。對於每個「類型」的模型,您正在查詢您的GROUP BY
,建立一個db.Model
類來表示每個類。然後直接查詢這些類。
或者,如果您已預先知道返回的組的值,則可以爲每個值設置Query#filter(),並將這些查詢作爲您的GROUP BY
ed集處理。
我想這個解決方案最終取決於你計劃如何處理分組數據。如果分組要求是爲了簡化HTML代碼中的輸出,那麼您可以通過regrouping模板中的數據來解決該問題。
對於計算或其他類型的聚合,您需要在內存中執行此操作。