Classer MySQL par date, heure et somme
P粉322319601
P粉322319601 2023-09-01 08:49:20
0
1
568
<p>J'ai une base de données qui stocke les enregistrements d'achat : </p> <pre class="brush:php;toolbar:false;">| user_id prix du produit | --------------------------------------------- | 1 | 1 | -0,75 | | 2 | 1 | -0,75 | | 3 | 2 | -0,65 | | 2 | 1 | -0,75 | | 1 | 1 | -0,75 | | 1 | 3 | -1,50 | | 1 | 2 | -0,65 | | 2 | 1 | -0,75 | | 3 | 2 | -0,65 | | 3 | 3 | -1,50 | | 3 | 3 | -1,50 | 2022-01-02 |</pré> <p>N.B. Le temps n’est pas important dans ce problème. </p> <p>Ce que je veux, c'est le classement de chaque utilisateur chaque jour. Par exemple, la situation de l'utilisateur 1 est la suivante : </p> <pre class="brush:php;toolbar:false;">| datetime | produit2 | -------------------------------------------------- ------------------- | 2022-01-01 | | 2022-01-02 | 1 | 1 | 2,90 |≪/pré> <p>Veuillez noter que les classements sont calculés quotidiennement. </p> <p>La requête suivante donne une partie du tableau : </p> <pre class="lang-sql Prettyprint-override"><code>SELECT DATE(`datetime`) AS dateheure, SOMME (CAS QUAND produit = 1 PUIS 1 ELSE 0 FIN) COMME produit1, SOMME (CAS QUAND produit = 2 PUIS 1 ELSE 0 FIN) COMME produit2, SOMME (CAS QUAND produit = 3 PUIS 1 ELSE 0 FIN) COMME produit3, SOMME (CAS QUAND produit = 1 PUIS 0,75 ELSE 0 END) + SOMME (CAS QUAND produit = 2 ALORS 0,65 ELSE 0 END) + SOMME (CAS QUAND produit = 3 ALORS 1,5 ELSE 0 END) au total, DE 'l'histoire' OÙ id_utilisateur=1 GROUPE PAR DATE(`datetime`) </code></pre> <p>Mon problème est très similaire à celui-ci : le classement MySQL, mais je n'arrive pas à obtenir les résultats exactement comme je l'ai demandé. Seuls tous les utilisateurs de chaque jour peuvent être classés. Si j'ajoute la fonction de classement donnée, elle examinera le tableau et mettra le 02/01/2022 en premier (car 2,90 est supérieur à 0,75). Comment faire fonctionner les classements pour chaque jour ? </p>
P粉322319601
P粉322319601

répondre à tous(1)
P粉707235568

La question n'est pas tout à fait claire. Cependant, je pense que ce que vous demandez, c'est comment classer les achats de tous les utilisateurs par jour :

date_historique identifiant_utilisateur Total quotidien Classement total
2022-01-01 2 1.50 1
2022-01-01 1 0,75 2
2022-01-01 3 0,65 3
2022-01-02 3 3.65 1
2022-01-02 1 2.90 2
2022-01-02 2 0,75 3
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal