Maison  >  Questions et réponses  >  le corps du texte

Classer MySQL par date, heure et somme

<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粉322319601P粉322319601435 Il y a quelques jours536

répondre à tous(1)je répondrai

  • P粉707235568

    P粉7072355682023-09-02 00:07:31

    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

    répondre
    0
  • Annulerrépondre