【发布时间】:2020-12-10 14:56:38
【问题描述】:
我有一个ProductPurchase 模型,描述了client 进行的购买。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column
from sqlalchemy import DateTime
from sqlalchemy import String
Base = declarative_base()
class ProductPurchase(Base):
__tablename__ = "product_client"
client_id = Column(String(255))
product_id = Column(String(255))
purchased_at = Column(DateTime(timezone=True))
我想要做的是获取ProductPurchase 的列表,对于给定的product_id,我只会第一次购买client。
例如:
+-----------+------------+--------------+
| client_id | product_id | purchased_at |
+-----------+------------+--------------+
| c1 | prod1 | 2020-01-01 |
+-----------+------------+--------------+
| c1 | prod1 | 2020-01-02 |
+-----------+------------+--------------+
| c2 | prod1 | 2020-01-01 |
+-----------+------------+--------------+
| c2 | prod2 | 2020-01-01 |
+-----------+------------+--------------+
我想得到以下行:
+-----------+------------+--------------+
| client_id | product_id | purchased_at |
+-----------+------------+--------------+
| c1 | prod1 | 2020-01-01 |
+-----------+------------+--------------+
| c2 | prod1 | 2020-01-01 |
+-----------+------------+--------------+
| c2 | prod2 | 2020-01-01 |
+-----------+------------+--------------+
请注意,日期 2020-01-02 缺少 client_id=1 和 product_id=1 对,因为它应该被过滤掉 - 目标是仅获得客户对产品的首次购买。
如何使用sqlalchemy 尝试此操作?
【问题讨论】:
标签: python sql sqlalchemy