SQLAlchemy-计算用户输入变量的总百分比

时间:2019-02-07 10:56:26

标签: python postgresql sqlalchemy

我有一个数据库,其中包含3种类型的数据:

class Data(db.Model):
    __tablename__="data"
    id=db.Column(db.Integer,primary_key=True)
    email=db.Column(db.String(120), unique=True)
    height=db.Column(db.Integer)
    color=db.Column(db.String(5))

我想创建一个函数,以获取与用户输入的眼睛颜色相同的眼睛颜色的用户百分比。我将通过电子邮件将此信息发送给用户,因此我认为触发器不会有所帮助。

这将创建一个包含我需要的数据的表,但是它列出了每种颜色,我不知道如何从该表中获取特定的颜色:

SELECT color, count(*) AS user_count, COUNT(*) * 100.0/ SUM(COUNT(*)) OVER() as percent FROM data;

这与我想像的差不多,但是不起作用。抛出属性错误

def find_pct(color):
    return db.session.query(Data).filter(Data.color==color).count()*100/ sum.count()

1 个答案:

答案 0 :(得分:0)

对于特定的颜色,您可以使用Postgresql中的聚合d9fc62dba13069fc281e9d09b698ba2e32f6dafd 2625eb741618dae7004b3d23a5894ae7a91df698 cfae25eced932c1375b3bc56ae8399ca88513d94 子句:

FILTER