From: | Andy Colson <andy(at)squeakycode(dot)net> |
---|---|
To: | David Blomstrom <david(dot)blomstrom(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Hierarchical Query Question (PHP) |
Date: | 2015-10-30 21:49:19 |
Message-ID: | 5633E5DF.3070208@squeakycode.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 10/30/2015 4:36 PM, Andy Colson wrote:
> On 10/30/2015 3:47 PM, David Blomstrom wrote:
>> No, I get the same T_FUNCTION error.
>>
>> Someone commented that the function...
>>
>> create function tax_rank(id integer) returns text as $$
>> select case id
>> when 1 then 'Classes'
>> when 2 then 'Orders'
>> when 3 then 'Families'
>> when 4 then 'Genera'
>> when 5 then 'Species'
>> end;
>> $$ language sql;
>>
>> ...should ideally be part of the table schema. Does that mean I need to
>> go into pgAdmin, open up my table and paste this in somehow?
>>
>> I wonder if the function is even necessary. My goal is to create a
>> hierarchical query that displays the number of children, grandchildren,
>> etc. And, depending on the taxonomic level, it might display the result
>> as "20 families, 74 genera and 413 species." With MySQL I could probably
>> turn that into a series of echo values, which I could then display like
>> this:
>>
>> echo ''.$NumberChildren.' families<br>
>> '.$NumberGrandchildren.' genera<br>
>> '.$NumberGreatgrandchildren.' species';
>>
>> I'm wondering if I should figure out this query or go back to square one
>> with a simpler query. I've never seen a query with a function before. ;)
>>
>> Thanks for the tips.
>
> Shoot, I should have read this before responding to the first one.
>
> Yes, create function tax_rank, should be done in pgAdmin.
>
> > I wonder if the function is even necessary.
>
> Correct, its not. It should probably be a lookup table:
>
> create table taxon (
> taxonid serial,
> descr text
> );
> create table gz_life_mammals (
> id serial,
> taxonid integer, -- use the lookup table
> parentid integer -- use the lookup table
> );
>
>
> -Andy
>
>
>
>
Humm, after looking at this further, my answer isn't right. I did not
notice rank (classes, orders, families...) is different than taxon
(mammilia, carnivora, ...)
But still, lookup table is better than function.
-Andy
From | Date | Subject | |
---|---|---|---|
Next Message | David Blomstrom | 2015-10-30 22:10:21 | Re: Hierarchical Query Question (PHP) |
Previous Message | Andy Colson | 2015-10-30 21:36:35 | Re: Hierarchical Query Question (PHP) |