2016-11-16 79 views
0

我正在为4个国家的4个网站的客户端工作。我们的部分博客文章已翻译并发布在4个网站上。那么发生什么事情是,我有四个不同的国家访问每个职位的唯一身份证。分组和旋转自定义尺寸

我希望能够查询每个国家/地区的每个帖子的访问次数(所以每个帖子ID)。

我已经运行下面的查询,但它不工作:

SELECT * FROM (
SELECT hits.customDimensions.value AS postid 
FROM [storied-toolbox-115472:1127229124.ga_sessions_20161108] 
WHERE hits.customDimensions.index=10), (SELECT hits.customDimensions.value AS Country, 
count(totals.visits) as visit, 
FROM [storied-toolbox-115472:1127229124.ga_sessions_20161108] 
WHERE hits.customDimensions.index=1 
group by 
Country) 

查询运行正常,但在结果是我的帖子ID该国为空引用。如果我有国家,帖子ID被引用为空。

回答

1

没有机会做任何测试,所以下面大多是“盲目”的拍摄,但我通常擅长这一点。你们不要论断人很难,如果这是错误的:O)

SELECT 
    postid, 
    country, 
    SUM(visits) AS visits 
FROM (
    SELECT 
    visitid, 
    hits.customDimensions.value AS postid 
    FROM [storied-toolbox-115472:1127229124.ga_sessions_20161108] 
    WHERE hits.customDimensions.index = 10 
) AS posts 
JOIN (
    SELECT 
    visitid, 
    hits.customDimensions.value AS country, 
    SUM(totals.visits) AS visits 
    FROM [storied-toolbox-115472:1127229124.ga_sessions_20161108] 
    WHERE hits.customDimensions.index = 1 
    GROUP BY visitid, country 
) AS stats 
ON posts.visitid = stats.visitid 
GROUP BY postid, country 
+0

你会在地狱里燃烧!不,我在开玩笑,它工作得很好。非常感谢 ! –

+0

yayk。很高兴听到这个!盲编码岩石:o) –

+0

只是另一个新的问题。如果你也可以盲目编码。将会是完美的 :) –

2

我可能误解了这个问题,但这里有一个查询应该会给你所有的postid(作为一个数组)以及每个国家的访问总和。您需要启用standard SQL才能运行它。

SELECT 
    ARRAY_AGG((SELECT value FROM UNNEST(hits.customDimensions) 
      WHERE index = 10)) AS postids, 
    (SELECT value FROM UNNEST(hits.customDimensions) WHERE index = 1) AS Country, 
    SUM(totals.visits) AS visits 
FROM `storied-toolbox-115472.1127229124.ga_sessions_20161108` AS t 
    CROSS JOIN UNNEST(hits) AS hits 
WHERE EXISTS (SELECT value FROM UNNEST(hits.customDimensions) 
       WHERE index = 10) 
GROUP BY Country; 
+0

得到了以下错误'阵“postids”不能有一个空element' –

+0

我更新了我的答案,排除没有'行帖子ID '。你可以试试这个新版本,看看它是否有效? –

+0

非常感谢,但是......查询返回零记录。'; p –