Heim  >  Fragen und Antworten  >  Hauptteil

Ordnen Sie MySQL nach Datum, Uhrzeit und Summe

<p>Ich habe eine Datenbank, in der Kaufdatensätze gespeichert werden: </p> <pre class="brush:php;toolbar:false;">|. user_id datetime | ---------------------------------------- |. 1 |. -0,75 | |. 2 |. -0,75 | |. 3 |. 2022-01-01 | |. 2 |. -0,75 | |. 1 |. -0,75 | |. 1 |. 2022-01-02 | |. 1 |. 2022-01-02 | |. 2 |. 0,75 | |. 3 |. 2022-01-02 | |. 3 |. -1,50 | |. 3 |. -1,50 |. 2022-01-02 | <p>N.B. Zeit ist bei diesem Problem nicht wichtig. </p> <p>Was ich möchte, ist das Ranking jedes Benutzers jeden Tag. Die Situation von Benutzer 1 ist beispielsweise wie folgt: </p> <pre class="brush:php;toolbar:false;">|. datetime | -------------------------------------------------- ------------------- |. 01.01.2022 | |. 2022-01-02 |. 1 |. <p>Bitte beachten Sie, dass die Rankings täglich berechnet werden. </p> <p>Die folgende Abfrage gibt einen Teil der Tabelle zurück: </p> <pre class="lang-sql Prettyprint-override"><code>SELECT DATE(`datetime`) AS datetime, SUM(CASE WHEN product = 1 THEN 1 ELSE 0 END) AS product1, SUM(CASE WHEN product = 2 THEN 1 ELSE 0 END) AS product2, SUM(CASE WHEN product = 3 THEN 1 ELSE 0 END) AS product3, SUM(CASE WHEN product = 1 THEN 0.75 ELSE 0 END)+SUM(CASE WHEN product = 2 THEN 0.65 ELSE 0 END)+SUM(CASE WHEN product = 3 THEN 1.5 ELSE 0 END) als Gesamtsumme, AUS „Geschichte“. WHERE user_id=1 GRUPPE NACH DATUM(`datetime`) </code></pre> <p>Mein Problem ist diesem sehr ähnlich: MySQL-Ranking, aber ich kann die Ergebnisse nicht genau so erhalten, wie ich es verlangt habe. Es können nur alle Benutzer für jeden Tag eingestuft werden. Wenn ich die angegebene Ranking-Funktion hinzufüge, schaut sie sich die Tabelle an und setzt den 02.01.2022 an die erste Stelle (da 2,90 höher als 0,75 ist). Wie sorge ich dafür, dass die Ranglisten für jeden Tag funktionieren? </p>
P粉322319601P粉322319601415 Tage vor512

Antworte allen(1)Ich werde antworten

  • P粉707235568

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

    问题并不完全清楚。然而,我认为你在问的是如何按天对所有用户的购买进行排名:

    history_date user_id DailyTotal totalRank
    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

    Antwort
    0
  • StornierenAntwort