Query per ricerca ritardo evento

tyler.durden

Nuovo Utente
28 Mar 2020
4
0
1
Salve a tutti,
sono a chiedere il vostro aiuto per tentare di risolvere una query che mi sta facendo impazzire da 2 giorni.
Ho una tabella (tb_match) nella quale raccolgo i dati di eventi calcistici (Nazione, Lega, Match, Risultati, Quote1X2, etc). Attraverso una query (q_match), con dei campi calcolati ottengo nuove colonne dove raccolgo statistiche sul singolo evento (Esito 1X2, percentuali di successo, etc). Di seguito un estratto del risultato ottenuto:
QUOTA1QUOTAXQUOTA2ESITO_1X2
2,53,52,621
2,253,23,25X
2,873,392,372

Poi ho un'ulteriore query che mi calcola quanti eventi 1, quanti x e quanti 2 si sono verificati per una determinata terzina di quote, ottenendo:
QUOTA1QUOTAXQUOTA2TOT_1X2TOT_EV1TOT_EVXTOT_EV2
2,53,52,62181035
2,253,23,2513364
2,873,392,37221048

Infine ho un'ultima query con la quale estraggo, per ogni terzina di quote, tutti gli eventi usciti, ovvero:
QUOTA1QUOTAXQUOTA2ESITO
2,53,52,621
2,53,52,622
2,53,52,62X

Fin qui tutto ok. Il problema sorge nel momento in cui voglio aggiungere alla query un'ulteriore colonna (chiamata ritardi) che mi calcola il ritardo di un evento (1 oppure X oppure 2) per una determinata terzina di quote 1X2 e che me lo riproponga per ogni record. Il risultato che vorrei ottenere è il seguente:
QUOTA1QUOTAXQUOTA2TOT_1X2TOT_EV1TOT_EVXTOT_EV2RIT1RITXRIT2
2,53,52,62181035210

Spero di essermi spiegato bene perchè la cosa è abbastanza contorta, o almeno lo è per me che non sono espertissimo di Database.
Grazie anticipatamente.
 
esempio, considerando 1 evento e 1 risultato,

dovrebbe essere possibile trovare la data massima della combinazione in esame

e quindi contare le occorrenze degli elementi successivi (per gli altri 2 risultati a parità di evento), che riportano il ritardo
 
Ciao e grazie per la risposta. Allora io tramite la seguente query:
Codice:
SELECT Count(*) AS ritardi1

FROM q_match

WHERE q_match.ID>(SELECT top 1 ID FROM q_match WHERE esito_1X2="1" ORDER BY ID desc);
Riesco a "catturare" l'ultimo evento (in questo caso il segno "1") ed a contare da li fino alla fine quanti eventi sono avvenuti. Il problema è che il calcolo me lo fa sull'intera colonna "esito_1x2", quindi in pratica mi fa il calcolo a partire dagli ultimi record della tabella e, andando indietro, conta fino a trovare il segno 1. A me invece servirebbe una query che prima filtri la terzina di quote (quindi ogni record dovrà avere le stesse quote 1X2) e da quella calcoli l'ultimo evento avvenuto.
 
Ultima modifica di un moderatore:
@tyler.durden
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strumenti

box inserisci.png



Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie
 
Grazie più tardi quando rientro proverò con "select max(id) from". Ho volutamente omesso il filtro per x e 2 perché per quelli farò altre due query separate. Invece per quanto riguarda il filtro sull'evento per la conta cosa dovrei aggiungere nella query esistente? Suppongo un count o dcount ma non capisco come aggiungerli alla query.

P.S. chiedo scusa per il codice...nei successivi post provvederò ad inserirlo negli appositi tag
 
Niente da fare...con "select max(id) from" non funge. Mi dice "la sottoquery può restituire al massimo un record". Forse perchè manca il count di cui mi parlavi? Puoi indicarmi la sintassi corretta?

Grazie
 
la sottoquery può restituire al massimo un record

"select max(id) from"
la select restituisce 1 record se metti il filtro per evento ed esito
mi riferisco all'evento ed agli esiti (presi singolarmente) che hai inserito nella query che ti ha permesso di ottenere l'ultima tabella che hai pubblicato nel post iniziale
 

Discussioni simili