Heres une table, le moment où la requête est exécutée par exemple est maintenant 2010-07-30 22:41:14mySql somme une colonne et retour uniquement les entrées avec et l'entrée en 10 dernières minutes
number | person | timestamp
45 mike 2008-02-15 15:31:14
56 mike 2008-02-15 15:30:56
67 mike 2008-02-17 13:31:14
34 mike 2010-07-30 22:31:14
56 bob 2009-07-30 22:37:14
67 bob 2009-07-30 22:37:14
22 tom 2010-07-30 22:37:14
78 fred 2010-07-30 22:37:14
Id comme une requête qui peut additionner le nombre pour chaque personne. Ensuite, n'affichez que les totaux de nom qui ont une entrée récente indiquent les 60 dernières minutes. Le difficile semble être que, bien qu'il soit possible d'utiliser ET timestamp
> now() - INTERVAL 600, cela a pour effet d'arrêter la somme complète du nombre.
les résultats que je voudrais en haut sont
Mike 202
tom 22
fred 78
bob n'est pas inclus sa dernière entrée ne suffit pas récemment son d'un an! Mike, bien qu'il ait plusieurs entrées anciennes, est valide parce qu'il a une entrée récemment - mais clé, il ajoute toujours son plein 'nombre' et pas seulement ceux avec la période de temps.
poursuivez votre tour en une seule requête! et merci
andy.
je vais proposer une solution avec deux requêtes reliées entre elles ... ne pas savoir comment j'ai oublié la clause HAVING. Incidemment, je ne crois pas que vous ayez besoin d'inclure le timestamp_column dans votre liste de sélection à moins que ce soit nécessaire pour l'affichage. –
oui, cela ressemble à la bonne réponse vs ma version paresseuse ci-dessous :) –
djacobsen: pour de nombreux RDBMS, vous n'avez pas. Pour le mysql de l'OP, ce n'est pas le cas. Pour le standard SQL, vous le faites, donc je l'ai inclus pour être portable et sûr. – tpdi