amazon-redshift - 我们可以在 Redshift 中使用 CTE(with 子句)进行 UPDATE 查询吗?
问题描述
我想在我的 Redshift INSET/UPDATE 查询中使用变量作为基准日期,因为这个基准日期应该像往常一样是 current_date-1,但在有任何紧急事项时应该灵活修改。
我可以在 WITH 子句中使用变量,如下所示。我只是想知道我们可以在更新查询中做同样的事情。
INSERT INTO SALES (
TARGET_DATE
,STORE_CODE
,PRODUCT_CODE
,SALES
)
WITH Variables AS (
SELECT
CURRENT_DATE-1::DATE AS VarOpsDate
--'2021-03-01'::DATE AS VarOpsDate
),
SALES_CTE AS (
SELECT
SALES_DATE
,STORE_CODE
,PRODUCT_CODE
,SUM(CASE WHEN "CATEGORY"='01' THEN SALES ELSE 0 END) AS SALES01
,SUM(CASE WHEN "CATEGORY"<>'01' THEN SALES ELSE 0 END) AS SALES02
FROM
FACT_SALES
WHERE
SALES_DATE = (SELECT VarOpsDate FROM Variables)
GROUP BY
SALES_DATE
,STORE_CODE
,PRODUCT_CODE
)
SELECT
(SELECT VarOpsDate FROM Variables)
,ST.STORE_CODE
,ST.PRODUCT_CODE
,SALES_CTE.SALES01
,SALES_CTE.SALES02
FROM
STORE_PRODUCT_LIST ST
LEFT OUTER JOIN
SALES_CTE
ON
ST.STORE_CODE = SALES_CTE.STORE_CODE
AND
ST.PRODUCT_CODE = SALES_CTE.PRODUCT_CODE;
如果您有任何好的解决方法,请告诉我。谢谢你。
解决方案
推荐阅读
- reactjs - 对象原型只能是一个对象或 null:在 React 中未定义
- css - 对我的 iPhone XS Max 最小宽度感到困惑
- sql-server - 使用 SSMS 在非标准端口上连接到 SQL Server
- jenkins - Jenkins 多线程函数
- java - Flutter - 基于设备主题的自适应应用图标
- typescript - sass 在 bootstrap5 中为 next.js 覆盖默认颜色?
- python - 将参数传递给管道中的 FunctionTransformer
- android - 在 Flutter 中使用枚举和在 Android 中使用枚举一样昂贵吗?
- php - 扩展 Laravel/Lumen Query Builder 以自动添加 SQL 注释
- react-native - 在 React Native 中将注销按钮添加到抽屉导航器