So erhalten Sie die ersten beiden Einträge jedes Wochentags in MySql 5.5.34
P粉676588738
2023-09-03 23:31:06
<p>Ich habe eine MySQL-Tabelle mit den Spalten <strong>TENANT_NAME</strong>, <strong>MAX_CALLS</strong> und <strong>kein Primärschlüssel </strong> /strong> , auf Anfrage fügen wir stündlich Daten ein und der gleiche Name kann wiederholt werden. </p>
<p>Jetzt möchte ich die Gruppennamen, die ich hinzufügen muss, und die Summe abrufen und die beiden besten Einträge für jeden Tag der Woche erhalten. </p>
<p>Zum Beispiel: 22:49 Daten einfügen</p>
<pre class="brush:php;toolbar:false;">TENANT_NAME,MAX_CALLS,TIME_STAMP
RS1, 20, 07.12.2022 22:49:17
RS2, 10, 07.12.2022 22:49:17
RS3, 2, 07.12.2022 22:49:17</pre>
<p>Nächste Stunde 23:49</p>
<pre class="brush:php;toolbar:false;">RS1, 15, 07.12.2022 23:49:17
RS2, 0, 07.12.2022 23:49:17
RS3, 20, 07.12.2022 23:49:17</pre>
<p>Auf diese Weise habe ich 1 Jahr Daten</p>
<p>Jetzt möchte ich die Namensgruppe von 2 Datensätzen für eine Woche jeden Tag zusammenfassen</p>
<p>Gefällt mir</p>
<pre class="brush:php;toolbar:false;">RS1, 35, MON
RS3, 22, MON... und so weiter
RS4, 40, SONNE
RS2, 35, SUN</pre>
<p>Ich habe diese Abfrage ausprobiert und konnte nach Name und Gesamtzahl der Anrufe gruppieren und DAYNAME anzeigen, aber ich möchte die beiden wichtigsten Datensätze für jeden Wochentag. </p>
<pre class="brush:php;toolbar:false;">wählen Sie a.TENANT_NAME,SUM(a.MAX_CALLS),DAYNAME(a.TIME_STAMP) aus TENANT_LIC_DISTRIBUTION AS als Gruppe nach a.TENANT_NAME,day(a.TIME_STAMP aus ) Reihenfolge nach a.MAX_CALLS,a.TIME_STAMP;
RS1, 35, MO
RS3, 22, MO
RS2, 10, MO
RS3, 30, DI
RS2, 20, DI
RS1, 10, DIE.... und so weiter
RS1, 20, SUN
RS2, 10, SONNE
RS3, 1, SUN</pre>
<p>Ich möchte es so bekommen</p>
<pre class="brush:php;toolbar:false;">RS1, 35, MON
RS3, 22, MO
RS3, 30, DI
RS2, 20, DIE.... und so weiter
RS1, 20, SUN
RS2, 10, SUN</pre>
<p>Bitte helfen Sie mir</p>
<p>Vielen Dank</p>
尝试使用窗口函数围绕聚合查询附加行号,然后按行号进行限制。这是一种方法。