我有一张用户表,每个订单一个。每个订单都带有引荐来源网址。我想选择那些在表中首次出现的用户(按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进行的交易中有多少重复订单。
最佳答案
您的查询需要稍微复杂一点才能完全按照您的要求工作。
首先,您需要一个内部查询,该查询将使您获得每个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'
关于mysql - 选择首次访问者的引荐来源网址值为adwords的用户,然后多次出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22387012/