选择首次出现的用户具有adwords的引荐来源值,并且显示的次数超过一次

时间:2014-03-13 17:57:23

标签: mysql

我有一个用户表,每个订单一个。每个订单都附带一个推荐人。我想选择那些第一次出现在表格中的用户(通过order_id)有一个'adwords'的推荐人,并且在表格中有多个条目。

此处使用的列是: order_id - 每个新订单都会获得一个新的order_id,它比最后一个订单多一个 billing_email - 用户电子邮件,这是我们知道他们是什么用户的方式 引荐来源 - 当它们通过adwords进入时会设置为adwords。

到目前为止我有这个:

select count(*) as num_entries, billing_email from tblOrder where referrer='adwords' GROUP BY billing_email HAVING count(*) > 1

那不是我正在寻找的东西。

我希望看到结果是这样的:

2, user@domain.com
4, user2@domain.com

等。因此告诉我有多少重复订单来自adwords。

1 个答案:

答案 0 :(得分:1)

您的查询需要更复杂才能完全按照您的意愿工作。

首先,您需要一个内部查询,以便您获得每个billing_email的最小order_id。它还允许您计算每个billing_email的总条目数,因此您只能包含多个用户。

然后,您必须使用该最小order_id连接回同一个表并从该行获取其余数据。这样,您就可以查看每个用户的最低order_id是否来自adwords。

SELECT T1.TableEntries, T1.billing_email FROM
(
    SELECT billing_email, MIN(order_id) AS UsersFirstOrderID
    , COUNT(*) AS TableEntries
    FROM tblOrder 
    GROUP BY billing_email
    HAVING TableEntries>1
) AS T1
JOIN
tblOrder AS T2
ON T1.UsersFirstOrderID=T2.order_id
AND T2.referrer='adwords'