SELECT SUM(number)
FROM
(
SELECT v_id,COUNT(DISTINCT s_id) AS number
FROM(
(SELECT p.v_id,p.s_id,p.ts
FROM page_view p,dim_page d
WHERE d.page_id = p.page_id
AND page_name = '广告页A') AS t1
LEFT JOIN
(SELECT p.v_id,p.s_id,p.ts
FROM page_view p,dim_page d
WHERE d.page_id = p.page_id
AND page_name = '产品页B') AS t2
ON t1.v_id = t2.v_id AND t1.s_id = t2.s_id
LEFT JOIN
(SELECT p.v_id,p.s_id,p.ts
FROM page_view p,dim_page d
WHERE d.page_id = p.page_id
AND page_name = '预定页C') AS t3
ON t1.v_id = t3.v_id AND t1.v_id = t3.s_id -- 要保证t1t2t3的vid和sid都一样
-- (s_id一样代表跳转,vid一样代表连接同一用户)
WHERE t1.ts < t2.ts
AND t2.ts < t3.ts
GROUP BY t1.v_id,t1.s_id)AS total -- 这里group形成了总表合并满足条件的记录(比如a/M,a/N,b/T,b/s)
-- a,b代表v_id,MNTS代表s_id
GROUP BY v_id -- groupv_id之后就能知道每个v_id有几个MNTS也就是满足条件的路径了
);
-- 这里我认为当v_id一样是,seesionid一样的组成一条路径!!!!