Вычитание минимального значения из всех значений в столбце - PullRequest
3 голосов
/ 28 мая 2009

Есть ли другой способ вычесть наименьшее значение из всех значений столбца, эффективно сместить значения?

Единственный способ, который я нашел, становится ужасно сложным для более сложных запросов.

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).

Ответы [ 2 ]

6 голосов
/ 28 мая 2009

Я полагаю, что это работает с ANSI 1999.

SELECT value - MIN(value) OVER() FROM offsettest;

0 голосов
/ 28 мая 2009

Это помогло бы вам увидеть ваш фактический запрос, хотя, поскольку в зависимости от того, нужно ли вам манипулировать более чем одним столбцом таким образом, и различные минимумы приходят из разных строк, могут быть более эффективные способы сделать это. Если у вас работает OVER (), тогда хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...