我想要做的就是获取一个数据集,显示我下了多少订单以及为每个订单拨打了多少电话。我还需要在同一张表中的通话日期和订单日期。该表是10M +行,因此结果集的聚合对于分析是必不可少的。 我想要做的唯一分析是调用总数/总订单,并且能够查看订单范围内订单生成的support_tickets数量,最多为call_date 。非常简单,但编码非常复杂。这是我的尝试。我也尝试将下面的内容改为联合,但仍然得到错误的聚合结果。
-- The Query:-
SELECT
category_name
count(order_code)
order_date
sum(support_ticket_call)
call_date
FROM
(Select distinct name, order_code, order_date from table1) b
left join
(select count(call_ids), call_date FROM table2) b
on b.order_ID_code = a.order_id_code
group by category_name, order_date, call_date
每当没有support_ticket_calls时,call_date为NULL,正如您所期望的那样。订单数量虽然是60,000,但与结果集的其余部分通常的12个左右不同。我知道这个查询出了什么问题,但是到目前为止,它让我疯狂地试图解决它。
答案 0 :(得分:0)
如果没有样本数据和预期结果,回答这个问题有点困难,但是评论太长了。
您当前的查询有几个问题。首先,您需要使用join
条件在日期字段上on
。您还需要将group by
添加到使用聚合的查询中。最后,support_ticket_call
来自哪里?我可以假定它是count(call_ids)
的别名吗?
这样的事情会让你接近:
SELECT
a.name as category_name,
count(a.order_code),
sum(b.support_ticket_call),
a.order_date as call_date
FROM
(Select distinct name, order_code, order_date
from table1) a
left join
(select count(call_ids) as support_ticket_call, call_date
from table2 group by call_date) b on a.order_date = b.call_date
group by a.name, a.order_date