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

Snowflake SQL code to show only second record for items with duplicate ID

我正在努力思考 SQL 并使用 Snowflake 作为测试平台来执行此操作。我有一个 table 的产品有多个针对它们的评论。我正在尝试构造一个查询以仅显示具有 2 条或更多评论的产品,然后仅显示第二条评论。正如我所说,这只是我试图更好地理解 SQL,所以选择第二条评论是一个随机问题。 table 由 4 列组成。 1 是产品 ID,2 是产品名称,3 是评论,4 是评论发布日期。

在此先感谢您的帮助。

您使用 row_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_NUMBER() 之类的窗口函数来进行编号分组,例如:

WITH Review_Sequence (
  SELECT r.*,
    ROW_NUMBER() OVER (PARTITION BY Product_ID ORDER BY Review_Date) Review_No
  FROM Reviews r
)
SELECT * FROM Review_Sequence WHERE Review_No = 2