PluginProbe
Independent Analytics – WordPress Analytics Plugin / 1.29.0
Independent Analytics – WordPress Analytics Plugin v1.29.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / sql / get_referrers.txt
get_referrers.txt
50 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 SELECT
2 *
3 FROM (
4 SELECT
5 GROUP_CONCAT(DISTINCT sessions.referrer_id) AS referrer_ids,
6 IFNULL(referrer_groups.name, referrers.domain) AS group_name,
7 GROUP_CONCAT(DISTINCT IFNULL(referrer_groups.domain, referrers.domain)) AS domain,
8 GROUP_CONCAT(DISTINCT referrer_groups.type) AS type,
9 SUM( IF(sessions.created_at BETWEEN :start AND :end, views.views, NULL)) AS views,
10 COUNT(DISTINCT IF(sessions.created_at BETWEEN :start AND :end, sessions.visitor_id, NULL)) AS visitors,
11 COUNT(DISTINCT IF(sessions.created_at BETWEEN :start AND :end, sessions.session_id, NULL)) AS sessions,
12 COUNT(DISTINCT IF(sessions.created_at BETWEEN :start AND :end AND sessions.final_view_id IS NULL, sessions.session_id, NULL)) AS bounces,
13 AVG( IF(sessions.created_at BETWEEN :start AND :end, TIMESTAMPDIFF(SECOND, sessions.created_at, sessions.ended_at), NULL)) AS average_session_duration,
14 SUM( IF(sessions.created_at BETWEEN :prev_start AND :prev_end, views.views, NULL)) AS prev_period_views,
15 COUNT(DISTINCT IF(sessions.created_at BETWEEN :prev_start AND :prev_end, sessions.visitor_id, NULL)) AS prev_period_visitors,
16 COUNT(DISTINCT IF(sessions.created_at BETWEEN :prev_start AND :prev_end, sessions.session_id, NULL)) AS previous_period_sessions,
17 AVG( IF(sessions.created_at BETWEEN :prev_start AND :prev_end, TIMESTAMPDIFF(SECOND, sessions.created_at, sessions.ended_at), NULL)) AS prev_period_average_session_duration,
18 SUM( IF(sessions.created_at BETWEEN :start AND :end, views.orders, NULL)) AS wc_orders,
19 SUM( IF(sessions.created_at BETWEEN :start AND :end, views.gross_sales, NULL)) AS wc_gross_sales,
20 SUM( IF(sessions.created_at BETWEEN :start AND :end, views.total_refunds, NULL)) AS wc_refunds,
21 SUM( IF(sessions.created_at BETWEEN :start AND :end, views.total_refunded, NULL)) AS wc_refunded_amount
22 FROM
23 wp_independent_analytics_sessions AS sessions
24 LEFT JOIN wp_independent_analytics_referrers AS referrers ON sessions.referrer_id = referrers.id
25 LEFT JOIN wp_independent_analytics_referrer_groups AS referrer_groups ON referrers.domain = referrer_groups.domain_to_match
26 JOIN (
27 SELECT
28 sessions.session_id,
29 COUNT(DISTINCT views.id) AS views,
30 COUNT(DISTINCT wc_orders.order_id) AS orders,
31 IFNULL(SUM(wc_orders.total), 0) AS gross_sales,
32 IFNULL(SUM(wc_orders.total_refunded), 0) AS total_refunded,
33 IFNULL(SUM(wc_orders.total_refunds), 0) AS total_refunds
34 FROM
35 wp_independent_analytics_sessions AS sessions
36 JOIN wp_independent_analytics_views AS views ON sessions.session_id = views.session_id
37 LEFT JOIN wp_independent_analytics_wc_orders AS wc_orders ON views.id = wc_orders.view_id AND wc_orders.status IN('wc-completed', 'completed', 'wc-processing', 'processing', 'wc-refunded', 'refunded')
38 WHERE
39 sessions.created_at BETWEEN :prev_start AND :end AND views.viewed_at BETWEEN :prev_start AND :end
40 GROUP BY
41 sessions.session_id) AS views ON sessions.session_id = views.session_id
42 WHERE
43 sessions.created_at BETWEEN :prev_start AND :end
44 GROUP BY
45 group_name
46 ORDER BY
47 visitors DESC) subquery
48 WHERE
49 views > 0 OR prev_period_views > 0
50