如何解决在案例构建中使用WITH和子集
致高级同事的问候。我陷入了这件事。 当构造取决于load_date字段的状态时,有必要在CASE中替换相应的值。 问题在于,根据对子样本获得的平均mean_v的计算结果,为第二个mean_v字段分配了一个值。 那么,如何在何时实施价值获取和分配? 我尝试过创建alias,别名()为(),但是sql在WITH附近抛出语法错误。 我必须从子集中分配平均值,其中各列对应于当前行 什么问题我可以在情况下使用WITH吗?
UPDATE public.table
set mean_v =
CASE
WHEN table.load_date IS NOT NULL
THEN
DATEDIFF(day,CONVERT(date,table.load_date),table.req_date))
WHEN table.load_date IS NULL
THEN
--(select id,customer,code,mean_v from public.data) as t
--wish use this to set for load_date per row:
--select AVG(t.mean_v) from t,public.table
--where t.customer = table.customer
--and t.code = table.code
END```
解决方法
也许像
UPDATE t
set mean_v =
CASE
WHEN load_date IS NOT NULL
THEN
DATEDIFF(day,CONVERT(date,load_date),req_date))
WHEN load_date IS NULL
THEN (
SELECT AVG(tt.mean_v)
FROM public.table tt
WHERE t.customer = tt.customer
and t.code = tt.code
)
END
FROM public.table t
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。