我有一個名為 "sales "的表,有兩個列:transaction_date,和transaction_amount。 對我為什么會回傳以下錯誤有什么見解嗎?
uj5u.com熱心網友回復: 我希望是這樣的: 但你的查詢的基本問題是,你需要將視窗函式應用于 uj5u.com熱心網友回復: 需要在Where子句之前使用GroupBy
標籤:VALUES ('2020-01-16 00:05:54.000000', '122.02'), ('2020-01-07 20:53:04.000000', '1240.00') /code>
我想找到2020年1月的每一天的3天移動平均線。我得到的錯誤資訊是:transaction_amount必須包含在一個聚合函式中或group by中。按它分組是沒有意義的,因為我只想在結果表中每天有一個條目。在我的代碼中,我已經在聚合函式SUM中包含了金額,所以我不確定還需要嘗試什么。
SELECT EXTRACT(DAY FROM transaction_time) AS Jan20_day, SUM(transaction_amount), SUM(transaction_amount) OVER(ORDER BY EXTRACT(DAY FROM transaction_time) ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS rolling_average FROM sales WHERE EXTRACT(MONTH FROM transaction_time)=1 AND EXTRACT(YEAR FROM transaction_time)=2020 GROUP BY EXTRACT(DAY FROM transaction_time) /code>Query Error: error: column "transactions.transaction_amount" must appear in the GROUP BY clause or be used in an aggregate functionSELECT EXTRACT(DAY FROM transaction_time) AS January20_day,
SUM(交易金額)。
SUM(SUM(交易金額)) OVER (ORDER BY EXTRACT(DAY FROM transaction_time) ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS rolling_average
FROM sales
WHERE transaction_time >= DATE '2020-01-01' AND<
transaction_time < DATE '2020-02-01'
GROUP BY EXTRACT(DAY FROM transaction_time)。
SUM(),所以SUM(SUM(transaction_amount)) . . . .
SELECT EXTRACT(DAY FROM transaction_time) AS January20_day, SUM(交易金額)。
SUM(transaction_amount)
OVER(ORDER BY EXTRACT(DAY FROM transaction_time)
ROWS BETWEEN 2之前的and CURRENT ROW) AS rolling_average
FROM sales
WHERE EXTRACT(MONTH FROM transaction_time)=1。
GROUP BY {property}.
AND EXTRACT(YEAR FROM transaction_time)=2020 GROUP BY EXTRACT(DAY FROM transaction_time)
