【发布时间】:2015-02-09 13:52:06
【问题描述】:
我对如何从查询中获取此表感到困惑
+-------------+---------+----------+---------+-------+
|Product Name |Today |WTD | MTD |YTD |
+-------------+---------+----------+---------+-------+
|Name1 |78 |80 |89 |89 |
+-------------+---------+----------+---------+-------+
|Name2 |56 |78 |88 |78 |
+-------------+---------+----------+---------+-------+
其中的值是平均值,“Today”是今天的平均值,“WTD”是指本周至今的平均值,“MTD”是指本月至今的平均值,“YTD”是指年初至今的平均值。
老实说,我不太了解 SQL,而且我正在使用 SQLALchemy(我也不太了解)。 我要从中获取数据的表是:
class Product(Base):
__tablename__ = 'product'
id = Column(Integer, primary_key=True)
name = Column(Unicode(80))
class ProductAssessment(Base):
__tablename__ = "product_assessment"
id = Column(Integer, primary_key=True)
product_id = Column(Integer, ForeignKey('product.id'), nullable=False)
product_name = relationship(Product, backref=backref('assessments'),
cascade="all, delete, delete-orphan")
score = Column(Integer, nullable=False)
record_date = Column(Datetime, default=func.now())
目前我能够通过这样做获得产品的平均值:
result = DBSession.query(Product.name.label("Product name"), func.avg(Product_Assessment.score).label("YTD")).filter(Product.id==Product_Assessment.product_id).group_by(Product.name)
如果有人可以帮助我,我将不胜感激
编辑
样本数据: 产品
+-------+--------+
|id |name |
+-------+--------+
|1 |Name1 |
+-------+--------+
|2 |Name2 |
+-------+--------+
产品_评估
+----------+---------+--------+----------+
|product_id|id |score |Date |
+----------+---------+--------+----------+
|1 |1 |80.16 |2015/1/5 |
+----------+---------+--------+----------+
|2 |2 |85.19 |2015/1/18 |
+----------+---------+--------+----------+
|1 |3 |81.70 |2015/1/18 |
+----------+---------+--------+----------+
|1 |4 |70.11 |2015/1/18 |
+----------+---------+--------+----------+
预期输出:
+------------+--------+-------+-------+------+
|Product name|Today |WTD |MTD |YTD |
+------------+--------+-------+-------+------+
|Name1 |70.11 |70.11 |77.32 |77.32 |
+------------+--------+-------+-------+------+
|Name2 |85.19 |85.19 |85.19 |85.19 |
+------------+--------+-------+-------+------+
这是@mandeep_m19 的数据
【问题讨论】:
-
发布您期望的示例数据集和示例输出
标签: python mysql sql sqlalchemy