SQL查找表中第一次出现的行

时间:2018-06-19 05:52:49

标签: sql postgresql

id name marks 
1;"mohit";10
2;"mohit";20
3;"raj";30
4;"rupesh";40
5;"rupesh";50

预期输出为:

1;"mohit";10
4;"rupesh";40

4 个答案:

答案 0 :(得分:3)

试试这个

SELECT * 
FROM Your_Table
WHERE ID IN (
             SELECT Min(ID)
             FROM Your_Table
             GROUP BY Name
             HAVING Count(*) > 1
)

答案 1 :(得分:0)

我认为$input_data_array = (array)json_decode(file_get_contents('php://input'));应该在这里工作:

DISTINCT ON

这假设您希望每个人的第一行与SELECT DISTINCT ON (name) name, id, marks FROM your_table ORDER BY name, id;

相关

enter image description here

Demo

延迟编辑:

看起来您希望每个名称组中的第一条记录至少出现两次或更多次。我们可以尝试以下查询:

id

答案 2 :(得分:0)

USE GROUP BY计算多次出现..

SELECT * FROM table WHERE name IN( SELECT name FROM table GROUP BY名称HAVING COUNT(名字)> 1)

答案 3 :(得分:0)

我认为这应该有用

select * from 
(select ROW_NUMBER() OVER(
    PARTITION BY name
    ORDER BY id ) as rnum , name ,id ,marks
from  your_table) A
where rnum = 1