我需要从2个表中创建一个查询,我的公司存储电子商店信息。
第一个表的数据示例:
currentDate: 5.5.2022 | eshopId: 1 | eshopName: test | active: true |
表2:
currentDate: 5.5.2022 | eshopId: 1 | orderId: 123 | attribution: direct |
从第一个表中,我想知道在给定的时间段内商店有多少天是活跃的。从第二张表中,我想计算出与第一张表中同一时间段内直接归属于我们公司的所有订单。
SELECT i.id, count(*)
from table1 as i
FULL JOIN table1 as e ON e.id= i.id
WHERE i.active = TRUE
GROUP BY i.id
我尝试合并同一个表两次,因为在我使用count来获取非活动日期的数量之后,我不能使用另一个变量,因为它没有聚合。这仍然行不通。我无法想象我要如何处理3张表。有人能告诉我怎么做吗?谢谢。
如果每个eshopId
的每一天都有一行,并且您想要计算活动天数以及每个eshopId
的订单数量:
SELECT i.eshopId, count(*)
from table1 as i
left join (select eshopId, count(distinct orderId) from table2 group by eshopId) j on i.eshopId=j.eshopId
WHERE i.active = TRUE
GROUP BY i.eshopId