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