gpt4 book ai didi

sql-server - SQL Server : special calculation for value in a view

转载 作者:行者123 更新时间:2023-12-04 09:34:49 25 4
gpt4 key购买 nike

我想计算列(计算)如下:
enter image description hereCalculated值是 Value 的两倍,只要不存在具有 Calculated 的较低值值高于 Value ,否则应为零。
基本上列Calculated其 MAX 值应至少为其类别的所有值的一半( Column1 )。
我在 SQL Server 数据库中有一个 View ,这对我来说意味着我不能使用 ORDER BY .
我的示例值:

CREATE TABLE test_table2020 
(
Column1 INT,
Column2 VARCHAR(1),
Value INT
)
我填充它:
INSERT INTO test_table2020 
VALUES (1, 'A', 10), (1, 'A', 12),
(1, 'A', 22), (1, 'A', 23),
(1, 'A', 13), (1, 'A', 24),
(2, 'B', 15), (3, 'C', 16),
(3, 'C', 28), (3, 'C', 31),
(4, 'D', 9) , (4, 'D', 9)
我认为我从这里将能够获得每个不同 Column1 的最大值(计算值)。
我真的不知道该怎么做,这适用于有几行的情况。
这将显示不含零的计算值:
SELECT *, value * 2 AS Calculated FROM test_table2020
事情是为了计算什么值(value)的东西应该升级到不过度。

最佳答案

与 CASE 配合使用的窗口函数在这里会有所帮助
编辑:不清楚是否 Column2应该嵌入在 partition 中模式有点模棱两可。
示例

Select *
,Calculated = case when (Value*1.5<max(Value) over (partition by column1)
and sum(1) over (partition by column1) > 1 )
or ( avg(value) over (partition by column1) = value )
then Value * 2
else 0 end
From test_table2020
退货
enter image description here

关于sql-server - SQL Server : special calculation for value in a view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62638696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com