Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    10

    Query con peso sulla data

    Salve a tutti,

    supponiamo di avere una tabella di nome Click così composta: idClick, idContenuto, dataClick dove idClick è l'indice.

    Vorrei ottenere un elenco di idContenuto ed il relativo numero di click. Fin qui tutto semplice, basta un count(idClick) e un groub by idContenuto.

    Ma se volessi dare un peso a dataClick? Per esempio se un idContenuto ha 300 click, di cui 100 con la data di oggi e 200 passati, e invece che visualizzare 300 come risultato volessi visualizzare 500, cioè volessi dare ai click con data oggi un peso 3 e a gli altri 1, quindi (100x3)=300 + 200

    Cosa si può adottare per fare qualcosa del genere?

    Grazie!

  2. #2
    Ciao,
    utilizza il sum con case when come riportato nell'esempio sotto:

    SELECT tblID, sum(case when DATE_FORMAT(theDate, '%Y-%m-%d') = DATE_FORMAT(CURRENT_DATE(), '%Y-%m-%d') then 3 else 1 end) FROM timediff
    GROUP BY timediff.tblID

    Es: per la tabella

    codice:
    tblID	theDate	id
    77002221	12/06/2013 11.17.29	1
    56009055	12/06/2013 11.17.29	2
    77002221	15/06/2013 11.47.29	3
    77002221	12/06/2013 12.17.29	4
    77002221	12/06/2013 12.47.29	5
    56009055	15/06/2013 0.00.00	6
    56009055	10/06/2013 0.00.00	7
    restituisce:

    codice:
    tblID	punti
    56009055	5
    77002221	6
    dando 3 punti ai record inseriti in data odierna e 1 agli altri
    Ovviamente nel tuo caso devi modificare a tuo piacimento la parte

    DATE_FORMAT(theDate, '%Y-%m-%d') = DATE_FORMAT(CURRENT_DATE(), '%Y-%m-%d')

    Ciao
    Mik

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.