Thread: sum of numeric column
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[] | | |
----------------------------+--------------------------+-----------+----------+---------
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}
--------------
{2.0}
{1.0}
Regards
Prabhjot
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
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)
--------------
{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
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
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