Ich weiß, der Titel ist wahrscheinlich ziemlich dumm, aber ich habe es schwer, es anders zu formulieren.BigQuery: SELECT in WHERE-Klausel mit Filter basierend auf einem Wert in der aktuellen Zeile
Ich muss BigQuery at work atm für einen Bericht verwenden. BigQuery ist mit einer Google Analytics-Ansicht von uns verknüpft. Dies gibt uns einen Datensatz mit 1 Tabelle für jeden Tag. Die Zeilen der Tabellen sind Benutzersitzungen auf unserer Website, während Spalten einige Informationen über die Sitzungen enthalten. Das Problem, das ich habe, ist das Folgende: Ich möchte Sitzungen mit Transaktionen auswählen, aber nur, wenn der Benutzer in den letzten x Tagen vor der Transaktion von einem bestimmten Referrer auf unsere Site verwiesen wurde. Ich kenne nur grundlegendes SQL und nicht irgendwelche fortgeschrittenen Konzepte. Es ist sehr frustrierend für mich, da dies bei einer .csv der Daten ein Kinderspiel mit einer geeigneten Programmiersprache wäre, aber mir fehlt das Wissen über die relevanten Konzepte in SQL.
#standardSQL
SELECT
COUNT(*)
FROM
`dataset.ga_sessions_2017*`
WHERE
totals.transactions > 0 AND
fullVisitorId IN (SELECT
fullVisitorId
FROM
`dataset.ga_sessions_2017*`
WHERE
trafficSource.source = "xyz.com"
) AND
< date difference thing>
Ich könnte für den Datumsunterschied wie ich mit der trafficSource (Referrer) filtern. Das Problem für mich ist, dass, während "xyz.com" eine statische Sache ist, ich den Datumswert der aktuellen Zeile, in der ich mich befinde, referenzieren müsste. Also würde das Datum, an dem ich das 2. SELECT filtern würde, dynamisch sein von Zeile zu Zeile wechseln. Kann mir jemand sagen, wie das normalerweise gemacht wird? Das scheint eine Sache zu sein, die oft auftauchen würde.
Nun, es ist schwer, das zu sagen, aber Sie besser können einige BigQuery Mentoring, da dies zu komplex ist und mehrere Konzepte benötigt für Sie zu verstehen. – Pentium10
Es gibt auch viele Fälle, die hier nicht behandelt werden - innerhalb von 6 Tagen können viele Transaktionen und Überweisungen passieren. Ist Ihr Anwendungsfall eher ein Trichter mit klarem Anfang und Ende oder nur einem klaren Ende und einem bedingten Zeitrahmen? Was passiert, wenn jemand mehrere Transaktionen und Empfehlungen innerhalb von 6 Tagen hat? –