1
我寫這條巨蟒功能來查詢使用的SQLAlchemy包數據庫:組由多個列中的SQLAlchemy
def group_by_one_var(start_date, end_date, groupby):
data = db.session.query(
groupby,
MyModel.SnapDate,
func.count(MyModel.CustomerID).label("TotalCustomers")
)\
.filter(
MyModel.SnapDate >= start_date,
MyModel.SnapDate <= end_date
)\
.group_by(
groupby
).all()
return(data)
test_1 = group_by_one_var("2016-08-01", "2016-08-31", MyModel.Country) # Success
這確實由我選擇的變量分組我查詢的一個好工作。
但是,當涉及到由多個變量進行分組時,我被卡住了。
這是一個功能我用兩個變量寫給組:
def group_by_two_vars(start_date, end_date, groupby):
data = db.session.query(
groupby[0],
groupby[1],
MyModel.SnapDate,
func.count(MyModel.CustomerID).label("TotalCustomers")
)\
.filter(
MyModel.SnapDate >= start_date,
MyModel.SnapDate <= end_date
)\
.group_by(
groupby[0]
)\
.group_by(
groupby[1]
).all()
return(data)
tes2 = group_by_two_vars("2016-08-01", "2016-08-31", (MyModel.Country, MyModel.Currency)) # Success
此功能也做了很好的工作由我選擇的兩個變量分組我的查詢。
如何修改這些函數以接受動態數量的分組?
謝謝!
您是否嘗試過'.group_by(* GROUPBY)'? –
是的,謝謝堆,這就是我以後的事! – efbbrown