1
私は場所があります。場所には請求書があります。請求書には手数料があります。私は与えられた場所の月の料金をすべて手に入れたいです。グループを2回グループ化またはグループ化する方法は?
は、ここで私は何ができるかです:
SELECT
STR_TO_DATE(CONCAT_WS('-', YEAR(invoices.invoiceDate) , MONTH(invoices.invoiceDate), '01'), '%Y-%m-%d') as invoiceMonth,
AVG(fees.amount) as averageMonthlyInvoice,
SUM(fees.amount) as totalMonthlyInvoice
from invoices as invoices
inner join fees as fees
on fees.invoiceId = invoices.id
where invoices.locationId = 1
group by invoiceMonth
この第二の1は私の場所の平均と合計請求書情報を与えるだろう。私は一度にすべての場所でこれを行うことができるようにしたい。
SELECT
invoices.locationId as locationId,
STR_TO_DATE(CONCAT_WS('-', YEAR(invoices.invoiceDate) , MONTH(invoices.invoiceDate), '01'), '%Y-%m-%d') as invoiceMonth,
AVG(fees.amount) as averageMonthlyInvoice,
SUM(fees.amount) as totalMonthlyInvoice
from invoices as invoices
inner join fees as fees
on fees.invoiceId = invoices.id
group by invoiceMonth, locationId
しかし、この最後の1だけの平均と合計すべての請求書、私はそれぞれの特定の場所についての情報を与えていないだろう: は、ここで私が何をしたいのです。
おそらく同じデータと予想される結果を提供できますか?あなたの最後のクエリーは正しいですが、あなたがlocationidでグループ化しているので... – sgeddes
あなたは 'GROUP BY'節に現れず集約ではない列を選択しています。 –
@TimBiegeleisen - 列エイリアスでグループ化することができるので、除外された列はありますか?あなたのコメントを完全に理解していません。両方のクエリは私には右のように見える... – sgeddes