0
UNION ALLクエリの時間枠を横切って毎日からいくつかのデータポイントを取得し、その結果セットの各日のデータを合計するSQLクエリがあります。UNION ALL結果セットから合計を取得する
私が結果セットに追加したいのは、結果セットのすべての日の一番下にある合計です。私はROLLUP(GROUP BYステートメントで)を成功させずに使用しようとしましたが、エラーはORA-00933: SQL command not properly ended
のままです。
UNION ALLを持つROLLUPのトリックがあるかどうかはわかりません。私はまた、テンポラリテーブルを試してみた後、テンポラリテーブルの合計でUNION ALLを実行しますが、これはとても複雑に思えます(そして、どちらも動作するようにはできませんでした)。
誰かが私を手伝ってくれますか?ここに私の作業コードがあります:
SELECT /*+ USE_HASH(x) */
ACTIVITY_DAY
, SUM(ORDERED_UNITS)
, SUM(ORDERED_AMT)
FROM (
SELECT ACTIVITY_DAY,ORDERED_UNITS,ORDERED_AMT FROM D_DAILY_ORDERS
WHERE REGION_ID = 1
AND MARKETPLACE_ID = 1
AND ACTIVITY_DAY BETWEEN TO_DATE('20160409','YYYYMMDD') AND TO_DATE('20160505','YYYYMMDD')
AND ID IN ('B019433MGC', 'B019433O4C', 'B00STUX0F0', 'B017SL40S6', 'B00ZHJDJ5W', 'B00STUX276', 'B017SL44RI', 'B00ST415S0', 'B00ST414O0')
UNION ALL
SELECT ACTIVITY_DAY,ORDERED_UNITS,ORDERED_AMT FROM D_DAILY_ORDERS
WHERE REGION_ID = 1
AND MARKETPLACE_ID = 1
AND ACTIVITY_DAY BETWEEN TO_DATE('20160501','YYYYMMDD') AND TO_DATE('20160505','YYYYMMDD')
AND ID IN ('B007V4YR5M', 'B00BHQ9CHI')
) x
GROUP BY ACTIVITY_DAY
ORDER BY ACTIVITY_DAY
;
私は 'rollup'が正しい方法だと信じています。 'GROUP BY ROLLUP(ACTIVITY_DAY)'を使わなければなりません。あなたはエラーを出す質問を投稿していただけますか? – Aleksej
エラーを発生させるロールアップクエリバージョンは何ですか? –