對不起,我覺得我已經陷入死衚衕,因爲我對SQL的瞭解還沒有那麼深。在GA的BigQuery集成上選擇不同的customDimensions
從BigQuery的實施Google分析原始數據出來的數據是這樣的:
|-visitId
|- date
|- (....)
+- hits
|- time
+- customDimensions
|- index
|- value
+- customMetrics
|- index
|- value
我知道有命中總是發送一些數據GA。具體而言,我想customDimensions.index = 43,customDimensions.index = 24和customMetrics.index = 14。要指定,維度43是被看見或出售的對象,維度24告訴我他們是否被看見和公制14,當它被賣了時,值是1。 我的最終結果應該是這樣的:
customDimension.value(when index=43) count(when customDimension.index=24 and customDimension.value=='ficha') count(when customMetrics.index=14 and customMetrics.value ==1))
由customDimension.value分組(當指數= 43) 我知道,每次一個命中與customMetrics.index = 14發,同樣創下了customDimensions。 index = 43,同樣的,customDimensions.index = 24總是有一個customDimensions.index = 43。 我實際上設法創建了一個可以做我想做的事情的SQL,但費用是多少?它很大,很慢,很醜。什麼我目前做的是:
- 創建三個表,均具有visitId,hit.time和值當指數= 14,24,43
- LEFT JOIN 43與24 43.visitId == 24.visitId和43.hits.time == 24.hits.time作爲結果
- 左連接結果與14 ON 14.visitId == result.visitId AND 14.hits.time == result.hits.time
我對visitId或hits.time沒興趣,它只是一種關聯相同命中的方法(並且知道當customMetrics.index = 14和value = 1時他們購買了哪個產品。
這是我的代碼:
SELECT Tviviendasvisitas.viviendaId as ViviendaID ,sum(Tviviendasvisitas.NumeroVisitas) as NumeroVisitas,sum(Ttransacciones.Transactions) as Transactions FROM (
SELECT Tviviendas.visitId as visitId, Tviviendas.hits.time as visitTime, Tviviendas.ViviendaID as viviendaId,Tvisitas.visitas as NumeroVisitas FROM (
SELECT visitId,hits.time,hits.customDimensions.value as ViviendaID FROM ((TABLE_DATE_RANGE([-------.ga_sessions_], TIMESTAMP('2014-09-01'), TIMESTAMP('2014-09-30'))))
WHERE hits.customDimensions.index = 43
GROUP EACH BY visitId,hits.time, ViviendaID)as Tviviendas
LEFT JOIN EACH(
SELECT visitId,hits.time,count(*) as visitas FROM ((TABLE_DATE_RANGE([-------.ga_sessions_], TIMESTAMP('2014-09-01'), TIMESTAMP('2014-09-30'))))
WHERE hits.customDimensions.index = 24 AND hits.customDimensions.value=='ficha'
GROUP EACH BY visitId,hits.time) as Tvisitas
ON Tvisitas.visitId==Tviviendas.visitId AND Tvisitas.time==Tviviendas.time) as Tviviendasvisitas
LEFT JOIN EACH (
SELECT visitId ,hits.time as transactionTime, sum(hits.customMetrics.value) as Transactions FROM(TABLE_DATE_RANGE([-------.ga_sessions_], TIMESTAMP('2014-09-01'), TIMESTAMP('2014-09-30')))
WHERE hits.customMetrics.index = 14 AND hits.customMetrics.value=1
GROUP BY visitId, transactionTime) as Ttransacciones
ON Tviviendasvisitas.visitId==Ttransacciones.visitId AND Tviviendasvisitas.visitTime==Ttransacciones.transactionTime
GROUP BY ViviendaID
運行此查詢需要太多的時間,我創建結果的propper儀表板。
所以幫助我,如果這是我的最終結果。我覺得應該有一個更好的解決方案來解決這個問題,但我似乎無法親自找到它。
幫助?
也許這是要走的路。 – Datasetter 2014-10-29 12:15:09