有没有一种方法可以将 SQL 查询中的一列中的空值分配到另一列中?

发布于 2025-01-11 11:59:34 字数 1468 浏览 0 评论 0原文

我有什么

地区地区潜艇
NULLNULL500
AkmolaKokshetau150
AlmatyTaldykorgan500
AktobeAktobe400

我想要获得什么

地区地区潜艇
AkmolaKokshetau316
AlmatyTaldykorgan666
AktobeAktobe566

有没有办法在列中平均分配价值(潜艇/收入)其他列中为 NULL (区),以及同一列中不为空的其他值。

What I have

regiondistrictsubs
NULLNULL500
AkmolaKokshetau150
AlmatyTaldykorgan500
AktobeAktobe400

What I want to get

regiondistrictsubs
AkmolaKokshetau316
AlmatyTaldykorgan666
AktobeAktobe566

Is there a way to equally distribute value in column (subs / revenue) that is NULL in other column (district), among other values that are not null in the same column.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暗藏城府 2025-01-18 11:59:34

试试这个:

SELECT region
     , district
     , subs + sum(subs) FILTER (WHERE region IS NULL) OVER() / count(*) FILTER (WHERE region IS NOT NULL) OVER () :: integer AS subs
  FROM your_table

Try this :

SELECT region
     , district
     , subs + sum(subs) FILTER (WHERE region IS NULL) OVER() / count(*) FILTER (WHERE region IS NOT NULL) OVER () :: integer AS subs
  FROM your_table
故乡的云 2025-01-18 11:59:34

不确定我完全理解这个问题,但我猜你想要类似的东西:

select region
     , district
     , subs + (select subs/(select count(1) from t where region is not null) from t where region is null)
from t
where region is not null;

region  district    (No column name)
Akmola  Kokshetau   316
Almaty  Taldykorgan 666
Aktobe  Aktobe      566

Not sure I fully understand the question, but I guess you want something like:

select region
     , district
     , subs + (select subs/(select count(1) from t where region is not null) from t where region is null)
from t
where region is not null;

region  district    (No column name)
Akmola  Kokshetau   316
Almaty  Taldykorgan 666
Aktobe  Aktobe      566
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文