sql-server 用平均值更新表[已关闭]

myzjeezk  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(121)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

12天前关闭。
Improve this question
我的查询有问题:

UPDATE [DIM_Category]
SET Category 3 = (SELECT AVG(Category 2)
FROM [DIM_Category] GROUP BY Category)

我想在这个例子中做类似的事情,但我不知道怎么做。
| 类别|第二类|第三类|
| - -|- -|- -|
| 接触网|小行星108|小行星20350|
| 接触网|小行星29600|小行星20350|
| 网飞公司|小行星24000|小行星23000|
| 网飞公司|小行星22000|小行星23000|

g9icjywg

g9icjywg1#

尽管我很不喜欢你在这里所做的概念,但查询本身需要关联。一种很容易做到这一点的方法是使用cte。这将适用于你发布的示例。我包括了创建表的代码,所以我有一些工作要做。显然你不需要那部分。)

create table DIM_Category
(
    Category varchar(20)
    , Category2 int
    , Category3 int
);

insert DIM_Category
(
    Category
    , Category2
) values
    ('OCS', 10800)
    ,('OCS', 29600)
    ,('Netflix', 24000)
    ,('Netflix', 22000);

with CatAvg as
(
    select Category
        , CatAverage = AVG(Category2)
    from DIM_Category
    group by Category
)
update c
set Category3 = ca.CatAverage
from DIM_Category c
join CatAvg ca on ca.Category = c.Category;

select *
from DIM_Category;

相关问题