2012-11-21 10 views
5

Bei der Arbeit müssen wir einen Bericht erstellen, der 6 Monate alt ist. Grundsätzlich vom 1. Mai bis 1. November, und der Bericht muss wöchentlich sein. Bisher bin ich nur in der Lage sein, es eine Woche zu tun in einer Zeit manuell ...DAYOFWEEK, jeden Sonntag

Dies ist mein Code

SELECT displayname, capture_time, 
     satisfied_load_time AS load_time, 
     satisfied_response_time AS apdex_response_time 

FROM session_page_summary, page, apdex_value 

WHERE displayname LIKE 'xyz%'  
     AND capture_time >= '2012-11-01 00:00:00' 
     AND capture_time <= '2012-11-07 00:00:00'  
     AND page.page_id = session_page_summary.page_id  
     AND page.page_id = apdex_value.page_id 

GROUP BY displayname 
ORDER BY displayname 

ich nur einige der Long-Code gestrippt, um es etwas besser aussehen .

Das Ergebnis ist ...

displayname capture_time loadtime responsetime   
>xyz-a   11/7/2012  0.12  1.34 
>xyz-b   11/7/2012  0.83  2.92 
>xyz-c   11/7/2012  0.56  1.02 

Wie kann ich ein Ergebnis, das 6 Monate Daten bekommen, so etwas wie das?

displayname capture_time loadtime responsetime   
>xyz-a   11/7/2012  0.72  1.82 
>xyz-b   11/15/2012 1.23  1.01 
>xyz-c   11/22/2012 2.83  0.78 

alle 7 Tage bekomme ich den Bericht.

+0

Schöne, klare Frage :) –

+0

@JeremySmyth FWIW, meiner Meinung nach, eine klare Frage enthält in der Regel einen Datensatz und ein gewünschtes Ergebnis, mit einer kurzen Erklärung, wie man wäre von dem anderen abgeleitet :-( – Strawberry

Antwort

2

Die YEARWEEK Funktion ist wahrscheinlich, was Sie nach Woche gruppieren müssen. Es gibt eine Reihe von Optionen, um festzulegen, wie die Woche beginnt oder in welchem ​​Jahr sie klassifiziert wird.

Ihre Abfrage würde auch von der Verwendung des Operators BETWEEN profitieren. x BETWEEN a AND b ist normalerweise effizienter als x > a AND x < b.

+0

Danke für die schnelle Antwort tadman, allerdings bin ich bei MySQL noch ziemlich neu, bin mir nicht sicher über die Syntax oder wie ich die YEARWEEK Funktion anwenden soll, ich glaube ich sollte in die SELECT-Anweisung einfügen? Ansonsten bin ich verloren auf, wie weiter als nächstes zu gehen. Alle Zeiger werden geschätzt! – InPhamouZ

+0

Es wäre etwas wie GROUP BY Displayname, YARWEEK (capture_time) '. Wie können Sie sich bei der direkten Verknüpfung mit dem manuellen Seiteneintrag nicht über die Syntax sicher sein? Bitte lesen Sie zuerst die Dokumentation. – tadman

+0

Danke tadman, mir war nicht bewusst, dass die YEARWEEK verlinkt war, immer noch versucht, sich an das Format der Seite zu gewöhnen, noch einmal, danke! – InPhamouZ

0
SELECT displayname, capture_time, 
satisfied_load_time AS load_time, 
satisfied_response_time AS apdex_response_time 
FROM session_page_summary sps, page p, apdex_value av 
WHERE displayname LIKE 'xyz%'  
AND page.page_id = session_page_summary.page_id  
AND page.page_id = apdex_value.page_id 
AND capture_time between '2012-11-01 00:00:00'AND '2012-11-07 00:00:00'  
GROUP BY displayname 
ORDER BY displayname 

fein wäre ...

+0

Hallo Chella, ich bin nicht sicher, wie unterscheidet sich dieser Code von mir, ich entschuldige mich, wenn ich es vermisse es lesen. – InPhamouZ

Verwandte Themen