2016-08-19 2 views
0

Ich habe eine Datenbank, die Treffer auf verschiedenen Zielseiten aufzeichnet und dann bei jeder Conversion eine Conversion hinzufügt. Ich möchte eine kleine Tabelle ausgeben, die die Gesamttreffer für jede Zielseite, die Conversions und die Conversion% für jede Seite mit einem Datumswähler wie "Datum> = Aug 18" zeigtmysql output split tested Webseitenanzahl, Conversions, Prozent

Datenbank sieht so aus:

page |visitor ip | conversion | date 
pg1 | x.x.x | 1  | Aug 19 
pg3 | x.x.x | 0  | Aug 19 
pg1 | x.x.x | 0  | Aug 19 
pg5 | x.x.x | 0  | Aug 19 
pg1 | x.x.x | 0  | Aug 19 
pg5 | x.x.x | 1  | Aug 19 
pg1 | x.x.x | 1  | Aug 19 
pg3 | x.x.x | 0  | Aug 19 
pg5 | x.x.x | 0  | Aug 19 

möchten eine Tabelle zur Ausgabe wie folgt:

page | total hits | total conversions | conversion rate 
pg1 | 4   |  2    |  50% 
pg3 | 2   |  0    |  0 
pg5 | 3   |  1    |  33% 

danke !!!!!!!!!!

+1

'SUM',' COUNT' mit 'GROUP BY' –

+0

Zur Zeit habe ich: SELECT-Seite, Anzahl (Seite) Von Statistiken GROUP by page ORDER BY COUNT (Seite) DESC aber dies zeigt nur die ersten 2 Spalten, weiß nicht, wie man die gesamten Konvertierungen hinzufügen – themike

+0

Es ist eine Weile her und Sie haben keine Antwort ausgewählt, noch gab irgendeine Anregung. Es braucht viel, um Ihr Problem zu verstehen, eine Lösung zu finden und es für Sie zu schreiben. Wenn eine Lösung für Sie funktioniert hat, wählen Sie sie aus und laden Sie sie hoch. Wenn nicht, lass uns wenigstens wissen warum. – BeetleJuice

Antwort

0

Verwenden Sie diese Abfrage:

SELECT 
    page , 
    count(page) as 'total hits', 
    SUM(IF(conversion=1,1,0)) as 'total conversions', 
    CONCAT(ROUND(SUM(IF(conversion=1,1,NULL))/count(page) * 100),'%') as Rate  

FROM stats GROUP by page ORDER BY COUNT(page) DESC 

dieses Ergebnis zu erhalten:

enter image description here

Live Demo