MySql 5.5.34 で各曜日の最初の 2 つのエントリを取得する方法
<p>MySQL テーブルに列 <strong>TENANT_NAME</strong>、<strong>MAX_CALLS</strong>、<strong>TIME_STAMP</strong> があり、<strong>主キーがありません < /strong> 、リクエストに応じて 1 時間ごとにデータを挿入し、同じ名前を繰り返すことができます。 </p>
<p>ここで、追加する必要があるグループ名と合計コールを取得し、曜日ごとに上位 2 つのエントリを取得したいと思います。 </p>
<p>例: 22:49 データを挿入</p>
<pre class="brush:php;toolbar:false;">TENANT_NAME、MAX_CALLS、TIME_STAMP
RS1、20、2022-12-07 22:49:17
RS2、10、2022-12-07 22:49:17
RS3、2、2022-12-07 22:49:17</pre>
<p>次の時間 23:49</p>
<pre class="brush:php;toolbar:false;">RS1、15、2022-12-07 23:49:17
RS2、0、2022-12-07 23:49:17
RS3、20、2022-12-07 23:49:17</pre>
<p>このようにして、1 年分のデータが得られます</p>
<p>次に、2 レコードの名前グループを 1 週間毎日まとめたいと思います</p>
<p>このように</p>
<pre class="brush:php;toolbar:false;">RS1、35、MON
RS3、22、MON...など
RS4、40、SUN
RS2、35、SUN
<p>このクエリを試してみたところ、名前と合計通話数でグループ化してDAYNAMEを表示できましたが、曜日ごとに上位2レコードが必要です。 </p>
<pre class="brush:php;toolbar:false;">TENANT_LIC_DISTRIBUTION から a.TENANT_NAME,SUM(a.MAX_CALLS),DAYNAME(a.TIME_STAMP) をグループとして選択します (a.TENANT_NAME,day(a.TIME_STAMP) ) a.MAX_CALLS、a.TIME_STAMP による順序。
RS1、35、MON
RS3、22、月
RS2、10、MON
RS3、30、火曜日
RS2、20、火曜日
RS1、10、火曜日...など
RS1、20、SUN
RS2、10、SUN
RS3、1、SUN
<p>こんな感じにしたいです</p>
<pre class="brush:php;toolbar:false;">RS1、35、MON
RS3、22、月
RS3、30、火曜日
RS2、20、火曜日....など
RS1、20、SUN
RS2、10、SUN
<p>助けてください</p>
<p>ありがとうございます</p>