随着下面的MySQL查询,我想匹配,其中page
既是/signup
,然后在后面的userflow /confirm
MySQL的漏斗多个与运算
SELECT COUNT(*) as `total` FROM (
SELECT COUNT(DISTINCT t.user_id) AS `visitors`
FROM `tracks` t
JOIN `user_details` u ON u.id=t.user_id AND u.site_id=t.site_id
WHERE t.site_id='334565'
AND (t.page = '/signup' AND t.page = '/confirm')
AND t.timestamp BETWEEN '2015-01-23 00:00:00' AND '2015-04-30 23:59:59'
GROUP BY t.user_id, t.track_id
) as a
的主要问题与此查询下来,是MySQL没有按” t按我尝试使用它的方式工作(不正确)。 另一个问题是退回的订单可能不正确,因此还需要按照指定的顺序。
也许这个查询需要完全不同,但我不知道我在正确的轨道上。
有没有人以前做过或有没有更好的方法来完成工作?
请注意,上面的WHERE子句可以匹配不仅仅是page
更多,可以是任何东西,如t.referrer
或u.somethingelse
另一个例子是:
SELECT COUNT(*) as `total` FROM (
SELECT COUNT(DISTINCT t.user_id) AS `visitors`
FROM `tracks` t
JOIN `user_details` u ON u.id=t.user_id AND u.site_id=t.site_id
WHERE t.site_id='334565'
AND (u.browser = 'chrome' AND t.referrer_host = 'google.com' AND t.page = '/confirm' and t.page = '/preferences')
AND t.timestamp BETWEEN '2015-01-23 00:00:00' AND '2015-04-30 23:59:59'
GROUP BY t.user_id, t.track_id
) as a
每u.browser
,t.referrer_host
,t.page
是目标,我将trying
作为一个漏斗展示给大家。分析程序如何做到这一点。
(t.page ='/ signup'或t.page ='/ confirm'),并且有count(distinct t.page)= 2 – jarlh
@jarlh它需要在记录集中匹配,而不是返回1行与任一。 (用户流) –
@smftre你需要包含你的表模式和一些数据。有点难以理解,因为它的立场 –