postgresql select distinct latest record
I have a table like:
id fkey srno remark date
1 A001 1
2 A001 2
3 A002 1
4 A003 1
5 A002 2
I want distinct latest record based on max srno like
2 A001 2
4 A003 1
5 A002 2
sql postgresql greatest-n-per-group
add a comment |
I have a table like:
id fkey srno remark date
1 A001 1
2 A001 2
3 A002 1
4 A003 1
5 A002 2
I want distinct latest record based on max srno like
2 A001 2
4 A003 1
5 A002 2
sql postgresql greatest-n-per-group
add a comment |
I have a table like:
id fkey srno remark date
1 A001 1
2 A001 2
3 A002 1
4 A003 1
5 A002 2
I want distinct latest record based on max srno like
2 A001 2
4 A003 1
5 A002 2
sql postgresql greatest-n-per-group
I have a table like:
id fkey srno remark date
1 A001 1
2 A001 2
3 A002 1
4 A003 1
5 A002 2
I want distinct latest record based on max srno like
2 A001 2
4 A003 1
5 A002 2
sql postgresql greatest-n-per-group
sql postgresql greatest-n-per-group
edited Nov 21 '18 at 7:07
a_horse_with_no_name
297k46452547
297k46452547
asked Nov 21 '18 at 5:43


Kuldeep ThakurKuldeep Thakur
4517
4517
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
use window function row_number()
select * from (
select *,row_number() over(PARTITION by fkey order by srno desc) rn from table1 t1
) t where rn=1
you can write it by using cte
with cte as
(
select *,row_number() over(PARTITION by fkey order by srno desc) rn from
table_name t1
) select * from cte where rn=1
add a comment |
The best way to do this in Postgres is to use DISTINCT ON
:
SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;
Demo
add a comment |
You can use correlated subquery
select * from tablename where srno in
(select max(srno) from tablename b where a.fkey=b.fkey)
add a comment |
You may use a subquery with an IN
operator
with tab(id, fkey, srno) as
(
select 1,'A001',1 union all
select 2,'A001',2 union all
select 3,'A002',1 union all
select 4,'A003',1 union all
select 5,'A002',2
)
select *
from tab
where ( fkey, srno ) in
(
select fkey, max(srno)
from tab
group by fkey
);
id fkey srno
2 A001 2
4 A003 1
5 A002 2
Rextester Demo
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53405895%2fpostgresql-select-distinct-latest-record%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
use window function row_number()
select * from (
select *,row_number() over(PARTITION by fkey order by srno desc) rn from table1 t1
) t where rn=1
you can write it by using cte
with cte as
(
select *,row_number() over(PARTITION by fkey order by srno desc) rn from
table_name t1
) select * from cte where rn=1
add a comment |
use window function row_number()
select * from (
select *,row_number() over(PARTITION by fkey order by srno desc) rn from table1 t1
) t where rn=1
you can write it by using cte
with cte as
(
select *,row_number() over(PARTITION by fkey order by srno desc) rn from
table_name t1
) select * from cte where rn=1
add a comment |
use window function row_number()
select * from (
select *,row_number() over(PARTITION by fkey order by srno desc) rn from table1 t1
) t where rn=1
you can write it by using cte
with cte as
(
select *,row_number() over(PARTITION by fkey order by srno desc) rn from
table_name t1
) select * from cte where rn=1
use window function row_number()
select * from (
select *,row_number() over(PARTITION by fkey order by srno desc) rn from table1 t1
) t where rn=1
you can write it by using cte
with cte as
(
select *,row_number() over(PARTITION by fkey order by srno desc) rn from
table_name t1
) select * from cte where rn=1
answered Nov 21 '18 at 5:46
Zaynul Abadin TuhinZaynul Abadin Tuhin
13k21032
13k21032
add a comment |
add a comment |
The best way to do this in Postgres is to use DISTINCT ON
:
SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;
Demo
add a comment |
The best way to do this in Postgres is to use DISTINCT ON
:
SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;
Demo
add a comment |
The best way to do this in Postgres is to use DISTINCT ON
:
SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;
Demo
The best way to do this in Postgres is to use DISTINCT ON
:
SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;
Demo
answered Nov 21 '18 at 5:49


Tim BiegeleisenTim Biegeleisen
224k1391143
224k1391143
add a comment |
add a comment |
You can use correlated subquery
select * from tablename where srno in
(select max(srno) from tablename b where a.fkey=b.fkey)
add a comment |
You can use correlated subquery
select * from tablename where srno in
(select max(srno) from tablename b where a.fkey=b.fkey)
add a comment |
You can use correlated subquery
select * from tablename where srno in
(select max(srno) from tablename b where a.fkey=b.fkey)
You can use correlated subquery
select * from tablename where srno in
(select max(srno) from tablename b where a.fkey=b.fkey)
answered Nov 21 '18 at 5:46
fa06fa06
13k2917
13k2917
add a comment |
add a comment |
You may use a subquery with an IN
operator
with tab(id, fkey, srno) as
(
select 1,'A001',1 union all
select 2,'A001',2 union all
select 3,'A002',1 union all
select 4,'A003',1 union all
select 5,'A002',2
)
select *
from tab
where ( fkey, srno ) in
(
select fkey, max(srno)
from tab
group by fkey
);
id fkey srno
2 A001 2
4 A003 1
5 A002 2
Rextester Demo
add a comment |
You may use a subquery with an IN
operator
with tab(id, fkey, srno) as
(
select 1,'A001',1 union all
select 2,'A001',2 union all
select 3,'A002',1 union all
select 4,'A003',1 union all
select 5,'A002',2
)
select *
from tab
where ( fkey, srno ) in
(
select fkey, max(srno)
from tab
group by fkey
);
id fkey srno
2 A001 2
4 A003 1
5 A002 2
Rextester Demo
add a comment |
You may use a subquery with an IN
operator
with tab(id, fkey, srno) as
(
select 1,'A001',1 union all
select 2,'A001',2 union all
select 3,'A002',1 union all
select 4,'A003',1 union all
select 5,'A002',2
)
select *
from tab
where ( fkey, srno ) in
(
select fkey, max(srno)
from tab
group by fkey
);
id fkey srno
2 A001 2
4 A003 1
5 A002 2
Rextester Demo
You may use a subquery with an IN
operator
with tab(id, fkey, srno) as
(
select 1,'A001',1 union all
select 2,'A001',2 union all
select 3,'A002',1 union all
select 4,'A003',1 union all
select 5,'A002',2
)
select *
from tab
where ( fkey, srno ) in
(
select fkey, max(srno)
from tab
group by fkey
);
id fkey srno
2 A001 2
4 A003 1
5 A002 2
Rextester Demo
edited Nov 21 '18 at 5:58
answered Nov 21 '18 at 5:51


Barbaros ÖzhanBarbaros Özhan
13.2k71632
13.2k71632
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53405895%2fpostgresql-select-distinct-latest-record%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown