如何实现类似下面的查询
ID PID NAME
1 1 小王
2 3 小李
3 1 小赵
根据PID查询出唯一(用分组或唯一只能查询pid)我想查询所有的数据如下
ID PID NAME
1 1 小王
2 3 小李
也就是PID为1的就一个该怎么弄呢?希望大虾帮忙谢谢
------解决方案--------------------
- SQL code
SELECT a.ID,a.PID,a.NAME FROM TB a JOIN (SELECT min(ID) IDFROM TBGROUP BY PID) b ONa.ID=b.IDORDER BY a.ID--这个不?
------解决方案--------------------
------解决方案--------------------
- SQL code
select ID, PID, NAME from (select ID, PID, NAME,row_number() over(partition by PID order by ID) rn from tb)where rn=1
------解决方案--------------------
- SQL code
if OBJECT_ID('tb') is not null drop table tb go create table tb (ID INT ,PID INT,NAME VARCHAR(50))INSERT INTO tb VALUES(1,1,'小王')INSERT INTO tb VALUES(2,3,'小李')INSERT INTO tb VALUES(3,1,'小赵')select ID,PID,NAME from (select *,rn=ROW_NUMBER()over(partition BY PID order by GETDATE()) from tb)t WHERE rn=1 ID PID NAME----------- ----------- --------------------------------------------------1 1 小王2 3 小李(2 行受影响)