Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
486 views
in Technique[技术] by (71.8m points)

postgresql - Postgres- select all rows matching the first 10 distinct ids

have a happy new year!

I'm looking to keep all rows in my table for the first 10 distinct IDS, not just the first 10 rows order by id.

I don't know how to though. Your input will be of great help!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
SELECT * FROM test_id;
 id 
----
  1
  3
  5
  7
  9
 11
 13
 15
 17
 19
 21
 23
 25
 27
 29
 31
 33
 35
(18 rows)
WITH ranked_ids AS (
    select *, rank() over(order by id) AS rank from test_id
)
select * from ranked_ids WHERE rank <= 10;
 id | rank 
----+------
  1 |    1
  3 |    2
  5 |    3
  7 |    4
  9 |    5
 11 |    6
 13 |    7
 15 |    8
 17 |    9
 19 |   10
(10 rows)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...