function to operate on same fields, different records? - Mailing list pgsql-general

From will trillich
Subject function to operate on same fields, different records?
Date
Msg-id 20010329131729.B27033@mail.serensoft.com
Whole thread Raw
Responses Re: function to operate on same fields, different records?
List pgsql-general
is this kind of thing possible---?

    select gpa(student) from student where id=7121;
    select gpa(course) from course where id=29931;
    select gpa(prof) from prof where id=1321;

i've got several tables each of which have

    create table <various-and-sundry> (
        ...
        a int4,
        b int4,
        c int4,
        d int4,
        f int4,
        ...
    );

since i'd like to AVOID this nonsense--

    create view courseGPA as
    select *,
            (a * 4 + b * 3 + c * 2 + d)
            /
            (a + b + c + d + f) as gpa
        from course;

    create view profGPA as
    select *,
            (a * 4 + b * 3 + c * 2 + d)
            /
            (a + b + c + d + f) as gpa
        from prof;

    create view studentGPA as
    select *,
            (a * 4 + b * 3 + c * 2 + d)
            /
            (a + b + c + d + f) as gpa
        from student;

i'd rather be able to do this--

    create function gpa( unknowntableTuple ) returns float8 as '
        select
            ($1.a * 4 + $1.b * 3 + $1.c * 2 + $1.d)
            /
            ($1.a + $1.b + $1.c + $1.d + $1.f)
    ' language 'sql';

any chance of working something like that? if so, how? if not,
well, waaah!

--
does a brain cell think?

will@serensoft.com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!

pgsql-general by date:

Previous
From: will trillich
Date:
Subject: Re: timestamp/function question
Next
From: Peter Eisentraut
Date:
Subject: Re: missing data