每个生产者的点击/转换率

时间:2017-02-09 17:00:04

标签: mysql

我有一个包含表格的数据库:

  • 点击内部 - 系统跟踪的产品点击次数
  • 点击外部 - 合作伙伴系统跟踪的产品点击次数。点击次数: click_internal> = click_external ,每次外部点击都有一个列为bool click_external.click_valid
  • 转化 - 在合作伙伴系统中跟踪点击后发生的购买
  • 产品 - 有关已点击或购买的产品的信息
  • 制片人 - 有关产品制作人的信息

数据库架构如下所示: database schema

我想显示给定日期的每个制作人的有效外部点击次数和转化次数。所以结果应该是这样的:

database result

到目前为止,我得到了:

SELECT
producer.name,
COUNT(click_external.id),
COUNT(conversion.id),
SUM(conversion.price)
FROM click_external
LEFT JOIN click_internal ON click_internal.id = click_external.click_internal_id
LEFT JOIN product ON product.id = click_internal.product_id
LEFT JOIN producer ON producer.id = product.producer_id
LEFT JOIN conversion ON click_internal.id = conversion.click_internal_id
WHERE click_external.click_valid = 1
AND click_external.date = "2017-02-09"
GROUP BY producer.id
-- GROUP BY click_external.id

问题是当我尝试按producer.id 分组时,COUNT(CLICK_EXTERNAL.id)列的总和大于数据库中实际的行(点击次数)。即点击总和每个提供商的数量都大于未分组点击次数。

我还试图通过click_external.id 分组(如代码注释中所示)以查看哪些行。结果中的行数是可以的,但某些行的计数次数。即某些行的COUNT(CLICK_EXTERNAL.id)列大于1。

我应该在SQL中更改什么?

0 个答案:

没有答案