Diese Abfrage:Wie bearbeitet man diese MySQL-Abfrage, um eine zusätzliche Spalte mit count und avg einzuschließen?
select p.visitor_id , p.url, avg(p.duration), count(*) as sum_pages
from pages p
where visitor_id = 1
group by p.visitor_id , p.url
having avg(p.duration) > (select avg(p2.duration)
from pages p2
where p2.visitor_id = p.visitor_id
);
produziert diese hypothetische Tabelle:
visitor_id ---- url ---- duration --- sum_pages
1 ------------ home ------- 5 ------- 20
1 ------------ about ------ 8 ------- 12
1 ------------ contact ---- 2 ------- 13
1 ------------ services --- 2 ------- 18
Was es ist: Nimmt die durchschnittliche Dauer Anzahl der gesamten Tabelle, und prüft, ob die durchschnittliche Dauer URL größer ist. Wenn ja, wird die Nummer angezeigt.
Ich möchte das gleiche tun und dieses Mal die Seitenaufrufe hinzufügen. Jede Zeile wird als Seitenaufruf gezählt.
Wie erreiche ich das?
Wenn ich richtig verstehen Sie alle vistor_id + url Kombinationen, bei denen die Dauer> avg und Seitenaufrufe sind> Durchschnitt? Mit Durchschnitt meinen Sie den Gesamtdurchschnitt für eine Person? – PatrickSJ
Können Sie * und dieses Mal die Seitenaufrufe * im Detail hinzufügen? –
https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-y-simple-sql-query – Yunnosch