Optimale løsninger til forespørgsler i massedataeksporter
Brug altid sammenlægningsfunktioner
Der er ingen garanti for, at data i tabellerne samles efter dato, webadresse, website eller en kombination af nøgler. Du bør derfor altid sammenlægge dine felter (SUM, COUNT osv.) for at sikre, at rækkeværdierne samles. En tabel kan f.eks. indeholde flere rækker med forespørgslen "fede katte":
query date search_type impressions ... fede katte 10-10-2022 WEB 1000 fede katte 10-10-2022 WEB 200 fede katte 10-10-2022 IMAGE 5000
Hvis du blot søger efter forespørgslen "fede katte", også for en bestemt dato og søgetype, kan det resultere i flere rækker. Du bør derfor sammenlægge felterne som vist nedenfor, hvis du vil se summen af dine eksponeringer:
/* FORKERT måde at se den mest populære forespørgsel på: Giver kun 1 række pr. forespørgsel */ SELECT query, impressions FROM searchconsole.searchdata_site_impression ORDER BY 2 DESC LIMIT 1; Resultat: fede katte 5000 /* RIGTIG måde at se den mest populære forespørgsel på */ SELECT query, SUM(impressions) FROM searchconsole.searchdata_url_impression WHERE query != '' /* Bortfiltrer anonymiserede forespørgsler */ GROUP BY query ORDER BY 2 DESC LIMIT 1; Resultat: fede katte 6200
Begræns forespørgsler efter dato for at spare behandlingsomkostninger
Husk! Når du kører en forespørgsel i BigQuery, debiteres du for den, og dine tabeller kan blive meget store. De eksporterede tabeller er opdelt efter dato, hvilket gør det muligt at effektivt begrænse søgningen efter input, så kun datoer af interesse medtages. Dette kan føre til reelle besparelser på forespørgselsomkostningerne for store websites. En god metode til at minimere forespørgselsomkostningerne er at bruge en WHERE-klausul til at begrænse datointervallet i den datoopdelte tabel.
Bortfiltrer forespørgselsstrenge med nulværdi
Anonymiserede forespørgsler udgør ofte den mest almindelige forespørgsel for et website. En anonymiseret forespørgsel rapporteres som en streng med nullængde i tabellen. Hvis du vil se den mest populære forespørgsel for bestemte kriterier, er det en god idé at bortfiltrere forespørgselsværdier med nullængde fra din SQL-forespørgsel.
Eksempler på forespørgsler
Nedenfor kan du se nogle eksempler på forespørgsler, der kan hjælpe dig med at komme godt i gang med dataene.
Resultater efter website
Alle webstatistikker efter dag (seneste to uger)
SELECT data_date AS date, sum(impressions) AS impressions, sum(clicks) as clicks, sum(clicks) / sum(impressions) AS ctr, /* Der er tilføjet et ettal nedenfor, da position er nulbaseret */ ((sum(sum_top_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_site_impression WHERE search_type = 'WEB' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY data_date ORDER BY date desc LIMIT 1000
Mest populære forespørgsler via mobilweb i USA efter klik (seneste to uger)
SELECT query, device, sum(impressions) AS impressions, sum(clicks) AS clicks, sum(clicks) / sum(impressions) AS ctr, ((sum(sum_top_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_site_impression WHERE search_type = 'WEB' AND country = 'usa' AND device = 'MOBILE' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY clicks LIMIT 1000
Resultater efter webadresse
Mest populære Discover-webadresser efter klik (på en bestemt dag)
SELECT url, sum(impressions), sum(clicks) FROM searchconsole.searchdata_url_impression WHERE search_type = 'DISCOVER' AND data_date = DATE(2022, 02, 01) GROUP BY url ORDER BY 3 LIMIT 1000
Samlet statistik over forespørgsler og webadresser for udvidede resultater med ofte stillede spørgsmål (seneste to uger)
SELECT url, query, sum(impressions) AS impressions, sum(clicks) AS clicks, sum(clicks) / sum(impressions) AS ctr, ((sum(sum_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_url_impression WHERE search_type = 'WEB' AND is_tpf_faq = true AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY clicks LIMIT 1000
Al din trafik efter webadresse (seneste to uger)
SELECT url, search_type, sum(impressions) as impressions, sum(clicks) as clicks FROM searchconsole.searchdata_url_impression WHERE data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY 3 desc LIMIT 1000
Eksponeringer for forespørgsler, der indeholder "dit_brand" (seneste to uger)
SELECT regexp_contains(query, 'dit_brand') AS contains_brand, sum(impressions) AS impressions, sum(clicks) AS clicks FROM searchconsole.searchdata_url_impression WHERE search_type = 'WEB' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1 ORDER BY 2 desc LIMIT 1000