Обсуждение: sum of numeric column

Поиск
Список
Период
Сортировка

sum of numeric column

От
avi Singh
Дата:
I have a table structure and want to do a sum of column type i.e numeric. How can I do it ? when i try sum function i get this error

ERROR:  function sum(numeric[]) does not exist

Can anyone please help me with this ?

           Column           |           Type           | Collation | Nullable | Default
----------------------------+--------------------------+-----------+----------+---------
 grid_id                    | bigint                   |           | not null |
 as_of_date                 | date                     |           | not null |
 cell_id                    | bigint                   |           | not null |
 last_event_timestamp_local | timestamp with time zone |           |          |
 last_event_id              | bigint                   |           |          |
 column_id                  | bigint                   |           |          |
 column_name                | character varying(50)    |           |          |
 row_id                     | bigint                   |           |          |
 data_type_id               | smallint                 |           |          |
 data_numeric               | numeric[]                |           |          |
 data_string                | character varying[]      |           |          |

e.g. of values in numeric type column

 data_numeric
--------------
 {2.0}
 {1.0}

Regards
Prabhjot

Re: sum of numeric column

От
Adrian Klaver
Дата:
On 12/9/20 4:46 PM, avi Singh wrote:
> I have a table structure and want to do a sum of column type i.e 
> numeric. How can I do it ? when i try sum function i get this error

You don't have a numeric type you have a numeric array type.

> 
> ERROR:  function sum(numeric[]) does not exist

Hence the error above.

> 
> Can anyone please help me with this ?

What do you want to do with the array?

> 
>             Column           |           Type           | Collation | 
> Nullable | Default
> ----------------------------+--------------------------+-----------+----------+---------
>   grid_id                    | bigint                   |           | 
> not null |
>   as_of_date                 | date                     |           | 
> not null |
>   cell_id                    | bigint                   |           | 
> not null |
>   last_event_timestamp_local | timestamp with time zone |           |   
>         |
>   last_event_id              | bigint                   |           |   
>         |
>   column_id                  | bigint                   |           |   
>         |
>   column_name                | character varying(50)    |           |   
>         |
>   row_id                     | bigint                   |           |   
>         |
>   data_type_id               | smallint                 |           |   
>         |
>   data_numeric               | numeric[]                |           |   
>         |
>   data_string                | character varying[]      |           |   
>         |
> 
> e.g. of values in numeric type column
> 
>   data_numeric
> --------------
>   {2.0}
>   {1.0}
> 
> Regards
> Prabhjot


-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: sum of numeric column

От
avi Singh
Дата:
Thanks for your reply Adrian


What do you want to do with the array?
i want to do a sum of the values of numeric array type column e.g. below
 
data_numeric
--------------
 {2.0}
 {1.0}


(4 rows)



Regards


On Wed, Dec 9, 2020 at 4:49 PM Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 12/9/20 4:46 PM, avi Singh wrote:
> I have a table structure and want to do a sum of column type i.e
> numeric. How can I do it ? when i try sum function i get this error

You don't have a numeric type you have a numeric array type.

>
> ERROR:  function sum(numeric[]) does not exist

Hence the error above.

>
> Can anyone please help me with this ?

What do you want to do with the array?

>
>             Column           |           Type           | Collation |
> Nullable | Default
> ----------------------------+--------------------------+-----------+----------+---------
>   grid_id                    | bigint                   |           |
> not null |
>   as_of_date                 | date                     |           |
> not null |
>   cell_id                    | bigint                   |           |
> not null |
>   last_event_timestamp_local | timestamp with time zone |           |   
>         |
>   last_event_id              | bigint                   |           |   
>         |
>   column_id                  | bigint                   |           |   
>         |
>   column_name                | character varying(50)    |           |   
>         |
>   row_id                     | bigint                   |           |   
>         |
>   data_type_id               | smallint                 |           |   
>         |
>   data_numeric               | numeric[]                |           |   
>         |
>   data_string                | character varying[]      |           |   
>         |
>
> e.g. of values in numeric type column
>
>   data_numeric
> --------------
>   {2.0}
>   {1.0}
>
> Regards
> Prabhjot


--
Adrian Klaver
adrian.klaver@aklaver.com


Re: sum of numeric column

От
Adrian Klaver
Дата:
On 12/9/20 5:04 PM, avi Singh wrote:
> Thanks for your reply Adrian
> 
> 
> What do you want to do with the array?
> i want to do a sum of the values of numeric array type column e.g. below
> data_numeric
> --------------
>   {2.0}
>   {1.0}

If you are going to have a single element arrays only then why not just 
use a numeric field?

To answer question:

select sum(data_numeric[1]) from some_table;

If you are going to have multi-element arrays then there are more questions:

1) Do you want sum horizontal in array?

2) If 1) then also vertical in column?

3) Do you want sum in 'columns' of arrays?

4) If 3) then what about missing data?

> 
> 
> (4 rows)
> 
> 
> 
> Regards
> 
> 



-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: sum of numeric column

От
avi Singh
Дата:
Thanks Adrian for pointing me in the right direction, i got it working 


On Wed, Dec 9, 2020 at 5:32 PM Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 12/9/20 5:04 PM, avi Singh wrote:
> Thanks for your reply Adrian
>
>
> What do you want to do with the array?
> i want to do a sum of the values of numeric array type column e.g. below
> data_numeric
> --------------
>   {2.0}
>   {1.0}

If you are going to have a single element arrays only then why not just
use a numeric field?

To answer question:

select sum(data_numeric[1]) from some_table;

If you are going to have multi-element arrays then there are more questions:

1) Do you want sum horizontal in array?

2) If 1) then also vertical in column?

3) Do you want sum in 'columns' of arrays?

4) If 3) then what about missing data?

>
>
> (4 rows)
>
>
>
> Regards
>
>



--
Adrian Klaver
adrian.klaver@aklaver.com