Blazeを使用してSQL HAVINGのような単純な操作を実行しようとしています。by 操作とフィルタリング操作をチェーンすると、Blaze は 2 つのコマンドを適切にチェーンしません。
このデータを sqlite で使用する:
index customer item quantity
0 0 Greg Apples 5.0
1 1 Greg Soup NaN
2 2 Susan Pears 2.0
3 3 Susan Apples 3.0
これら 2 つの操作により、無効な SQL が生成されます
cnts = by(sqllitedf.customer,cnt=sqllitedf.quantity.count())
res = cnts[cnts.cnt > 1]
これが結果の SQL です。2 つの操作が正しく連結されていないことに注意してください。代わりに、COUNT 関数が不適切に使用されました。
print(compute(res))
SELECT df.customer, count(df.quantity) AS cnt
FROM df
WHERE count(df.quantity) > ? GROUP BY df.customer