[英]Get unique visitors by month/year
我有一個表,可跟蹤我的應用程序的所有頁面瀏覽量。
class Tracking_visits(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('users_user.id'), nullable=False)
ts = db.Column(db.DateTime(timezone=True), default=datetime.datetime.utcnow().replace(tzinfo=pytz.UTC))
此代碼可以按月/年分組訪問,效果很好。
db.session.query(func.count(Tracking_visits.id), extract('month', Tracking_visits.ts).label('m'), extract('year', Tracking_visits.ts).label('y')).group_by('m', 'y').order_by('m', 'y').all()
現在我有另一個目標。 我需要獲得唯一身份訪問的總數。 一個用戶可以進行多次訪問,但是在這種情況下,我只對按月進行的唯一訪問感興趣。 我怎樣才能做到這一點?
我讀到一些有關func.distinct()
但是我不確定如何將其應用於上面的查詢。
你只需要改變.query
說法讓func.count()
上運行distinct()
這是在以Trackin_visits.user_id
作為參數:
db.session.query(func.count(distinct(Tracking_visits.user_id)),
extract('month', Tracking_visits.ts).label('m'),
extract('year', Tracking_visits.ts).label('y'))
.group_by('m', 'y')
.order_by('m', 'y')
.all()
可以在以下站點找到有關查詢的文檔,如果向下滾動至Count()
,則會找到使用這種獨特方式的示例: http : //docs.sqlalchemy.org/en/rel_1_0/orm/query .html#the-query-object
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.