Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MYSQL] Errore di count() e sum()

    Buongiorno,

    ho ottenuto il risultato voluto da una query.

    Essa mi restituisce dei valori numerici.

    Posto la query.

    select if(time_to_sec(timediff(BM1.date, BM2.date)) > 20, (time_to_sec(timediff(BM1.date, BM2.date) - 20)), 0) from broadcast_message as BM1 inner join broadcast_message as BM2 on date(BM1.date) = date(BM2.date) AND date(BM1.date) = '2009-03-26' AND BM1.message = 1 AND BM2.message = 1 and time(BM1.date) > time(BM2.date) group by BM1.date;
    Essa mi restituisce una tabella del genere

    +---------------------------------------------------------------------------------------------------------+
    | if(time_to_sec(timediff(BM1.date, BM2.date)) > 20, (time_to_sec(timediff(BM1.date, BM2.date) - 20)), 0) |
    +---------------------------------------------------------------------------------------------------------+
    | 24 |
    | 16 |
    | 0 |
    | 0 |
    | 16 |
    +---------------------------------------------------------------------------------------------------------+
    Allora ho pensato: se mi serve la somma totale di quei valori (cioè 24 + 24 + 0 + 0 + 16) basta aggiungere la funzione SUM all'inizio della query che contenga tutte le altre funzioni, in questo modo:

    SUM( if(time_to_sec(timediff(BM1.date, BM2.date)) > 20, (time_to_sec(timediff(BM1.date, BM2.date) - 20)), 0) )
    Ma invece di un unico valor restituito, ottengo questo:

    +--------------------------------------------------------------------------------------------------------------+
    | sum(if(time_to_sec(timediff(BM1.date, BM2.date)) > 20, (time_to_sec(timediff(BM1.date, BM2.date) - 20)), 0)) |
    +--------------------------------------------------------------------------------------------------------------+
    | 24 |
    | 76 |
    | 106 |
    | 106 |
    | 264 |
    +--------------------------------------------------------------------------------------------------------------+
    Risultato simile con COUNT(), che vorrei ritornasse 5.

    Perchè tutto questo?

  2. #2
    il SUM e il COUNT vanno dopo la condizione if, quindi lascia la if all'esterno e poi fai la somma dei i valori
    V.I.S.T.A. --> Virus Inside, Switch To Apple

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.