Sql查询是否为列中具有相同值的每个条目返回3行?

Sql查询是否为列中具有相同值的每个条目返回3行?,sql,sql-server,Sql,Sql Server,好的,我在这里有点不习惯SQL查询,我有一个包含数千个条目的表。 每一行都有一个唯一的Id,但有一个名为EquipmentId的列,该列不是唯一的,将出现在多行中。我想为每个EquipmentId返回3行,如果一个EquipmentId的条目少于3行,我也希望这些条目。。。。。有道理?提前感谢。使用+ 使用子查询,您可以这样做: SELECT * FROM (SELECT *, Rank() OVER (PARTITION BY equipmentid

好的,我在这里有点不习惯SQL查询,我有一个包含数千个条目的表。 每一行都有一个唯一的Id,但有一个名为EquipmentId的列,该列不是唯一的,将出现在多行中。我想为每个EquipmentId返回3行,如果一个EquipmentId的条目少于3行,我也希望这些条目。。。。。有道理?提前感谢。

使用+


使用子查询,您可以这样做:

SELECT * 
FROM
    (SELECT *, Rank() 
     OVER 
         (PARTITION BY equipmentid
          ORDER BY ID) Rank
     FROM stack) AS a 
WHERE
    rn <= 3

您使用的是哪种数据库管理系统?答案可能取决于您正在使用的产品。@Ultrazz008,这不是ANSI SQL,也不是正确答案。MS SQL Server Management Studio只是想补充一点,有没有一种方法可以对返回进行分组,以便我可以看到分组为3的条目。
SELECT * 
FROM
    (SELECT *, Rank() 
     OVER 
         (PARTITION BY equipmentid
          ORDER BY ID) Rank
     FROM stack) AS a 
WHERE
    rn <= 3