【发布时间】:2014-07-24 18:27:59
【问题描述】:
我有以下两个查询来查找从 2014 年 1 月开始的每周的综合浏览量和订单。
select productid,
EXTRACT (week from dt)as WEEK,
count(productid)as PageViews
from PageView
where client = 'XYZ'
and dt between '2014-06-01' and '2014-06-30'
GROUP BY WEEK, productid
ORDER BY WEEK asc;
和
select
count(distinct t.orderid),
EXTRACT(week from t.dt) AS WEEK
FROM Transaction t
where t.client = 'XYZ'
and t.dt between '2014-01-01' AND '2014-06-30'
GROUP BY WEEK
ORDER BY WEEK asc;
为了获得正确的数据,我需要创建一个与 Transaction 和 PageView Tables 中的周匹配的连接条件,例如来自 Transaction 的周 = 来自 PageView 的周。然而,我不知道它的语法是什么样的。
做一个简单的
PageView pv LEFT OUTER JOIN Transaction t
ON pv.productid = t.productid
AND EXTRACT(week from t.dt) = EXTRACT(week from pv.dt)
没有给出正确的输出(即网页浏览量和订单量显着增加)。有人可以解释一下如何将这两个查询结合起来获得所需的输出,即 PageView 表中的所有产品和按周分组的 Transaction 表中的相应订单
【问题讨论】:
-
pageview和trans table有关系吗?
-
两个表的主键是什么?两个表都存在哪些备用键(如果有)?
标签: sql database postgresql