我想知道是否有可能在以下问题中避免(t)SQL中的for / while循环 .
这三个表:1 . CAMPAIGN:包含campaign_id列(Camp_ID)和描述广告系列开始日期的日期列(start_date)
-
SALE:包含customer_id列(Cust_ID),收入列(rev)和日期列(日期),表示客户在特定日期的收入
-
选择:包含客户对营销活动的分配,因此(Cust_ID)和(Camp_ID)
那么我想知道的是:客户在营销活动中创造了哪些收入 .
所以混合python和SQL
for (CID, SD) IN CAMPAIGN:
SELECT Cust_ID, SUM(rev)
FROM SALE
JOIN SELECTION
ON SALE.Cust_ID = SELECTION.Cust_ID
WHERE SELECTION.Camp_Id = CID AND SALE.date > SD
CID和SD指的是CAMPAIGN的Camp_Id和start_date
是否可以使用一些elemntary sql语法替换此for循环 . 我找到了使用游标和while循环的解决方案,然而,可能有一些更简单的东西,比如我看不到的一些分组和连接 .
1 回答
您可以通过CID将该条件放在
JOIN
和组中: