id name marks
1;"mohit";10
2;"mohit";20
3;"raj";30
4;"rupesh";40
5;"rupesh";50
预期输出为:
1;"mohit";10
4;"rupesh";40
答案 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;
。
延迟编辑:
看起来您希望每个名称组中的第一条记录至少出现两次或更多次。我们可以尝试以下查询:
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