隨着下面的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你需要包含你的表模式和一些數據。有點難以理解,因爲它的立場 –