是否有另一种方法可以从列的所有值中减去最小值,从而有效地抵消这些值?
我找到的唯一方法对于更复杂的查询变得非常复杂。
CREATE TABLE offsettest(value NUMBER);
INSERT INTO offsettest VALUES(100);
INSERT INTO offsettest VALUES(200);
INSERT INTO offsettest VALUES(300);
INSERT INTO offsettest VALUES(400);
SELECT value - (SELECT MIN(value) FROM offsettest) FROM offsettest;
DROP TABLE offsettest;
如果可能的话,我想将它限制为单个查询(没有存储过程,变量等),首选标准SQL(尽管我使用的是Oracle)。
答案 0 :(得分:6)
我认为这适用于ANSI 1999。
SELECT value - MIN(value) OVER() FROM offsettest;
答案 1 :(得分:-1)
但是,它会帮助您查看实际查询,因为这取决于您是否需要以这种方式操作多个列,并且各种最小值来自不同的行,可能有更有效的方法来执行此操作。如果OVER()适合你,那就好了。