How to select unique records in PostgreSQL

Started by Rama Krishnanover 3 years ago3 messagesgeneral
Jump to latest
#1Rama Krishnan
raghuldrag@gmail.com

Hi All,

I want to get the unique wallet_id from this table even it was repeated on
multiple occasions I should calculate only once as well as if the wallet_id
was calculated on previous month it shouldn't be calculate on next months

create table student_id
(
student_wallet_id int,
card_id int,
created_date date
)

insert into student_id values ('w1', 'c1', '2022-04-01')

insert into student_id values ('w1', 'c2', '2022-04-03')

insert into student_id values ('w1', 'c3', '2022-04-04')

insert into student_id values ('w1', 'c4', '2022-05-01')
insert into student_id values ('w2', 'c1', '2022-05-01')
insert into student_id values ('w2', 'c2', '2022-05-04')
insert into student_id values ('w3', 'c4', '2022-05-05')
insert into student_id values ('w3', 'c6', '2022-06-03)
insert into student_id values ('w3', 'c7', '2022-06-05')
insert into student_id values ('w3', 'c8', '2022-06-07')
expected output:
-------------------

months count_wallet_id
2022-04 1
2022-05 2
2022-05 0

Regards

A.Rama Krishnan

#2Ron
ronljohnsonjr@gmail.com
In reply to: Rama Krishnan (#1)
Re: How to select unique records in PostgreSQL

Honestly, you do it *in PostgreSQL* the same way you do it in all the other
SQL RDBMSs.

On 11/24/22 06:01, Rama Krishnan wrote:

Hi All,

I want to get the unique wallet_id from this table even it was repeated on
multiple occasions I should calculate only once as well as if the
wallet_id was calculated on previous month it shouldn't be calculate on
next months

create table student_id
(
student_wallet_id int,
card_id int,
created_date date
)

insert into student_id values ('w1', 'c1', '2022-04-01')

insert into student_id values ('w1', 'c2', '2022-04-03')

insert into student_id values ('w1', 'c3', '2022-04-04')

insert into student_id values ('w1', 'c4', '2022-05-01')
insert into student_id values ('w2', 'c1', '2022-05-01')
insert into student_id values ('w2', 'c2', '2022-05-04')
insert into student_id values ('w3', 'c4', '2022-05-05')
insert into student_id values ('w3', 'c6', '2022-06-03)
insert into student_id values ('w3', 'c7', '2022-06-05')
insert into student_id values ('w3', 'c8', '2022-06-07')
expected output:
-------------------

months count_wallet_id
2022-04      1
2022-05     2
2022-05     0

Regards

A.Rama Krishnan

--
Angular momentum makes the world go 'round.

#3David G. Johnston
david.g.johnston@gmail.com
In reply to: Ron (#2)
Re: How to select unique records in PostgreSQL

On Fri, Nov 25, 2022 at 7:50 AM Ron <ronljohnsonjr@gmail.com> wrote:

Honestly, you do it *in PostgreSQL* the same way you do it in all the
other SQL RDBMSs.

Emphasizing "in PostgreSQL" is nonsensical - it isn't like the OP specified
that they know how to do it in some other RDBMS and are trying to convert
their knowledge to PostgreSQL.

On 11/24/22 06:01, Rama Krishnan wrote:

I want to get the unique wallet_id from this table even it was repeated on
multiple occasions I should calculate only once as well as if the wallet_id
was calculated on previous month it shouldn't be calculate on next months

You need a subquery to compute the month in which each wallet_id should
appear (group by wallet_id with min(date) probably), then you can group on
the min(date) column and count the wallets.

David J.