MySQLでこれを行う方法がわかりません:
テーブルトランザクションとクライアントがあります。
各クライアントの最初の月の売上を ClientMonth 0、1、2 にグループ化したいので、グループとしてのすべてのクライアントの売上が経時的にどのように変化する傾向があるかを確認できます (取引を開始した時期に関係なく)。
私はこれをやろうとしてきました
DATEDIFF(client_firstdeal_date.firstdeal_date, MAX(dealdate)+1) AS TenureDays, DATEDIFF(MAX(dealdate)+1, CURDATE()) AS FallowDays
TenureDays でグループ化したいのですが、適切な結果が得られず、DATEDIFF、MAX、および GROUP BY の組み合わせを誤用していると確信しています。
編集:私が書いたものを読んで、以下のアディが言ったことについてもっと考えて、「(各段階で)正確に何が欲しいのか」と考え始めました。
とにかく、私は以下で私の問題を解決しました(私は本当に自分にとって難しすぎました):
SELECT
c.division, SUM(t.profitgbp), COUNT(ts.id), SUM(t.profitgbp)/COUNT(t.id) AS AverageProfPerTrans, ROUND(DATEDIFF(t.transdate,ft.firsttrans_date)/30, 0) AS ClientMonth FROM transactions t LEFT OUTER JOIN client_firsttrans_date ft
ON t.accountno=ft.accountno JOIN client c
ON c.accountno=t.accountno GROUP BY
ClientMonth, division
client_firsttrans_date は、これを簡単にするビューです
結果には満足しています。クライアントの存続期間中にトランザクション数がどのように減少するかを示す素敵なグラフが出力され、一部の部門は他の部門よりも損失が大きくなります。
私の質問を見てくれた皆さん、ありがとう。