如何通过字段选择k个不同的值?

时间:2017-10-05 12:58:33

标签: database postgresql

如何从k字段X的不同值中选择所有信息?

我想通过某个字段group by X然后选择这样的

id  name
1    x
2    y
3    x
4    y
5    z
6    w

name分组:

id  name
1    x
3    x
2    y
4    y
5    z
6    w

选择k=3 name的不同值:

id  name
1    x
3    x
2    y
4    y
5    z

知道怎么写这个查询吗?

2 个答案:

答案 0 :(得分:0)

试试这个 -

WITH CTE AS (SELECT DISTINCT name
         FROM TAB
         LIMIT 3)
SELECT * FROM TAB
WHERE NAME IN (SELECT name FROM CTE)
ORDER BY name;

答案 1 :(得分:0)

select id, name
from (
    select id, name, dense_rank() over (order by name) as ds
    from t
) s
where ds <= 3