你想在這里做兩件事 . 我假設您正在使用Oracle(因為您正在使用Java) .
首先,您希望對每個用戶的每日交易進行分組 .
創建一個名為 tempTable 的臨時表 .
使用 to_char(currentdate, 'yyyy/mm/dd') 對它們進行分組 .
INSERT INTO tempTable
SELECT
userid,
resourceid,
doc_name,
trans_id,
to_char(currentdate, 'yyyy/mm/dd') as currentday,
to_char(currentdate, 'MM') as month_value,
count(*) as daily_count
FROM
usertransaction
GROUP BY
userid,
resourceid,
doc_name,
trans_id,
to_char(currentdate, 'yyyy/mm/dd')
如果你有太多的數據行,我建議你這樣做;每天做一次 .
INSERT INTO tempTable
SELECT
userid,
resourceid,
doc_name,
to_char(currentdate, 'yyyy/mm/dd') as currentday,
to_char(currentdate, 'MM') as month_value,
count(*) as daily_count
FROM
usertransaction
WHERE
to_char(currentdate, 'yyyy/mm/dd') = to_char(SYSDATE, 'yyyy/mm/dd')
GROUP BY
userid,
resourceid,
doc_name,
trans_id
其次,您需要根據 month_value 進行多次插入 .
INSERT INTO txn_jan
SELECT
userid,
resourceid,
doc_name,
to_date(current_day, 'yyyy/mm/dd') as current_day,
daily_count
FROM
tempTable
WHERE month_value='01'
INSERT INTO txn_feb
SELECT
userid,
resourceid,
doc_name,
to_date(current_day, 'yyyy/mm/dd') as current_day,
daily_count
FROM
tempTable
WHERE month_value='02'
并繼續..