【发布时间】:2020-10-19 15:35:57
【问题描述】:
我想计算列(计算)如下:
Calculated 的值是Value 的两倍,只要没有低于Calculated 的值大于Value,否则应该为零。
基本上,Calculated 列的 MAX 值应至少为其类别 (Column1) 的所有值大小的一半。
我在 SQL Server 数据库中有一个视图,这意味着我不能使用 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
事情是为了计算应该升级到什么价值的东西而不会过度。
【问题讨论】:
-
附注:插入 数字 值时 - 您应该避免将它们放入单引号 - 只需使用
VALUES (1, 'A', 10), (1, 'A', 12),- 仅使用单引号字符串 或 日期/时间 值 - 不是数字 -
我已经更新了,谢谢!
-
每个元组的第三个值也是
INT,也不应该用单引号!
标签: sql-server view case partition