2012-11-21 18 views
5

Al lavoro dobbiamo produrre un rapporto di 6 mesi. In pratica, dal 1 ° maggio al 1 ° novembre, e il rapporto deve essere basato su base settimanale. Finora, io sto solo essere in grado di farlo una settimana alla volta manualmente ...DAYOFWEEK, Ogni domenica

Questo è il mio codice

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 

ho messo a nudo fuori parte del codice tempo solo per farlo sembrare un po 'meglio .

Il risultato è ...

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 

Come posso ottenere un risultato contenente 6 mesi di dati, qualcosa di simile?

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 

ogni 7 giorni ottengo il rapporto.

+0

domanda chiara Nizza :) –

+0

@JeremySmyth FWIW, a mio avviso, una domanda chiara genere include un insieme di dati e di un risultato desiderato, con una breve spiegazione di come si sarebbe derivato dall'altro :-( – Strawberry

risposta

2

La funzione YEARWEEK è probabilmente ciò che è necessario raggruppare per settimana. Ha un numero di opzioni per definire come inizia la settimana o in quale anno è classificato.

La tua query trarrebbe vantaggio dall'utilizzo dell'operatore BETWEEN. x BETWEEN a AND b è in genere più efficiente di x > a AND x < b.

+0

Grazie per la risposta rapida tadman, tuttavia, sono ancora abbastanza nuovo su MySQL, non sono sicuro della sintassi o di come dovrei applicare la funzione YEARWEEK, credo che dovrei metterlo nell'istruzione SELECT? Oltre a questo, mi sono perso su come procedere dopo Qualsiasi puntatore è apprezzato! – InPhamouZ

+0

Sarebbe qualcosa di simile a 'GROUP BY displayname, AnnoSettimana (capture_time) '. Come puoi non essere sicuro della sintassi quando ti ho collegato direttamente alla pagina di manuale? Si prega di leggere prima la documentazione. – tadman

+0

Grazie a tadman, non ero a conoscenza del fatto che YEARWEEK fosse collegato, ancora cercando di abituarmi al formato del sito, ancora una volta, grazie! – 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 

andrebbe bene ...

+0

Ciao Chella, non sono sicuro di come questo codice sia diverso dal mio, mi scuso se mi manca leggerlo. – InPhamouZ

Problemi correlati