问题描述
我尝试使用SQL,但无法正常工作。
问题:它没有给出第一分区行。
我要添加表详细信息和SQL。这是针对DB2数据库的。
an illegal attempt to dereference collection
解决方法
WHERE
row_num >= 1 AND
row_num >= 2;
实际上是row_num >= 2
WHERE
row_num = 1
将返回第一行
编辑: 如果您希望所有行多于1行的人-这是这样做的方法:
WITH cte_books AS (
SELECT
publisher_id,ROW_NUMBER() OVER (
PARTITION BY publisher_id
ORDER BY rating DESC
) row_num,book_id,rating,title
FROM
books
WHERE
publisher_id IS NOT NULL
)
SELECT *
FROM cte_books t
WHERE exists (SELECT 1
FROM cte_books
WHERE row_num > 1
AND pubisher_id = t.publisher_id)
,
将ROW_NUMBER()
更改为COUNT(1)
,删除ORDER BY
并使用WHERE row_num > 1
。