Snowflake SQL代码仅显示具有重复ID的项的第二条记录

Snowflake SQL代码仅显示具有重复ID的项的第二条记录,sql,snowflake-cloud-data-platform,Sql,Snowflake Cloud Data Platform,我正试图了解SQL,并使用Snowflake作为测试平台来实现这一点。我有一个产品表,其中有多个针对它们的评论。我试图构造一个查询,只显示有2个或更多评论的产品,然后只显示第二个评论。正如我所说的,这只是我试图更好地理解SQL,所以选择第二个评论是一个随机的问题。该表由4列组成。1是产品ID,2是产品名称,3是评论,4是评论发布日期 提前感谢您的帮助 您可以使用行编号()进行此类查询: select t.* from (select t.*, row_number()

我正试图了解SQL,并使用Snowflake作为测试平台来实现这一点。我有一个产品表,其中有多个针对它们的评论。我试图构造一个查询,只显示有2个或更多评论的产品,然后只显示第二个评论。正如我所说的,这只是我试图更好地理解SQL,所以选择第二个评论是一个随机的问题。该表由4列组成。1是产品ID,2是产品名称,3是评论,4是评论发布日期

提前感谢您的帮助

您可以使用
行编号()
进行此类查询:

select t.*
from (select t.*,
             row_number() over (partition by product_id order by date_review asc) as seqnum
      from t
     ) t
where seqnum = 2;
您可以使用
row\u number()
进行此类查询:

select t.*
from (select t.*,
             row_number() over (partition by product_id order by date_review asc) as seqnum
      from t
     ) t
where seqnum = 2;

您可以使用诸如
ROW\u NUMBER()
之类的窗口功能进行编号分组,例如:


您可以使用诸如
ROW\u NUMBER()
之类的窗口功能进行编号分组,例如:


请提供示例数据和期望的结果。嗨,戈登,请参阅上面的示例表和我正在尝试做的事情。请提供示例数据和期望的结果。嗨,戈登,请参阅上面的示例表和我正在尝试做的事情。嗨,戈登,谢谢你的建议。对不起,我的基本理解,但什么是指不到的?谢谢。@Marc。这是你桌子的名字。嗨,戈登,谢谢你的建议。对不起,我的基本理解,但什么是指不到的?谢谢。@Marc。这是你们桌子的名字。嗨,汉斯,谢谢你的回复。很抱歉我不理解,但r指的是什么?谢谢。这是一个表别名:r是Reviews表的表别名。我之所以使用它,只是因为我很懒,而且它允许我使用SELECT r.*来获取所有列的评论。当我添加一列时,我不能再使用SELECT*了。嗨,汉斯,谢谢你的回复。很抱歉我不理解,但r指的是什么?谢谢。这是一个表别名:r是Reviews表的表别名。我之所以使用它,只是因为我很懒,而且它允许我使用SELECT r.*来获取所有列的评论。当我添加列时,我不能再使用SELECT*。