Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Представление или функция / 2 сообщений из 2, страница 1 из 1
29.12.2007, 11:11
    #35041598
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление или функция
В таблице надо суммировать 3 колонки, значения могут быть не во всех сразу

1 суммирую так
Код: plaintext
1.
2.
3.
COALESCE("A", 0 ) + 
   COALESCE("B", 0 ) + 
   COALESCE("C", 0 ) 
правильно ли это

2 Что будт быстрее работать представление
Код: plaintext
1.
2.
3.
4.
CREATE OR REPLACE VIEW "SumAll" AS
SELECT *,  COALESCE("A", 0 ) + 
   COALESCE("B", 0 ) + 
   COALESCE("C", 0 ) from "Table"

3 Функция

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR REPLACE FUNCTION "SumP" ("ID" integer) RETURNS double precision AS
$body$
declare 
 SumAll real;
begin
 select (
COALESCE("A", 0 ) + 
   COALESCE("B", 0 ) + 
   COALESCE("C", 0 ) 
 ) into SumAll from "Table" where "PID"="ID";
 return SumAll;
end;
$body$
LANGUAGE 'plpgsql' IMMUTABLE RETURNS NULL ON NULL INPUT SECURITY INVOKER;

Вызов

Код: plaintext
1.
select *, "SumPredmetNagruzka"("PID")  from "Table"
...
Рейтинг: 0 / 0
29.12.2007, 12:00
    #35041708
av1985
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление или функция
-=Koba=-
правильно ли это

правильно

-=Koba=-
2 Что будт быстрее работать представление
3 Функция

представление, т.к. sql запрос быстрее, в приведенном же случае тем более.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Представление или функция / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]