我有一個交易日期時間字段回溯數年的大量記錄。我想在今年和最後的同一時間段進行比較分析。我如何在一個3個月的範圍內按周分組?MySQL group by week
由於2012年的開始日期和2011年的開始日期,我遇到了使用YEARWEEK和WEEK功能的問題。
鑑於我從1月1日到當天每天都記錄日期時間,並且記錄的日期與上年相同,所以我如何按周分組,以便輸出的日期時間類似於:01/01/2011年1月8日,2011年1月15日等,以及01/01/2012,01/08/2012,01/15/2012等?
我的查詢到目前爲止如下:
SELECT
DATE_FORMAT(A.transaction_date, '%Y-%m-%d') as date,
ROUND(sum(A.quantity), 3) AS quantity,
ROUND(sum(A.total_amount), 3) AS amount,
A.product_code,
D.fuel_type_code,
D.fuel_type_name,
C.customer_code,
C.customer_name
FROM
cl_transactions AS A
INNER JOIN
card AS B ON A.card_number=B.card_number
INNER JOIN
customer AS C ON B.customer_code=C.customer_code
INNER JOIN
fuel_type AS D ON A.fuel_type=D.fuel_type_code
WHERE
((A.transaction_date >= DATE_FORMAT(NOW() - INTERVAL 3 MONTH, '%Y-%m-01')) OR (A.transaction_date - INTERVAL 1 YEAR >= DATE_FORMAT(NOW() - INTERVAL 15 MONTH, '%Y-%m-01') AND A.transaction_date <= NOW() - INTERVAL 1 YEAR))
GROUP BY
A.transaction_date, fuel_type_code;
我會實質類似的東西,實現以下僞查詢:
GROUP BY
STARTING FROM THE OLDEST DATE (A.transaction_date + INTERVAL 6 DAY)
看起來你想MONTH和DAYOFMONTH()如果你想要的月份和日期匹配。 – 2012-03-21 17:09:46
@MarcusAdams:我一直在研究這些日期函數,但我正在爲如何總結七天的小組而苦苦掙扎。 – btl 2012-03-21 17:15:54