Serial Price ProductIdentifier ProductOrder
1 2.2 284 1
2 2.3 302 1
3 6.3 506 1
4 3.2 284 2
5 3.3 284 3
6 2.7 302 2
我有这个 sql server 表,它使用系统实时插入行。我需要获取的是具有最大 ProductOrder 的特定产品的价格(使用 Productidentifier)。
我使用此查询实现此目的:
With CTE AS(
SELECT *,ROW_NUMBER() OVER(PARTITION BY ProductIdentifier Order by ProductOrder DESC) rn
from tablename
)
select * from CTE where rn =1
上述查询将适用于整个数据集,该数据集在某些时候会变得巨大并且需要时间。因此,当每秒都有新记录出现时,我如何确保使用收到的新行更新结果,而无需再次查询整个数据集。
如果不在 sql server 中,我可以使用 python 脚本来执行此操作吗?
最佳答案
执行此操作的唯一方法是获取用于第一个查询的数据范围。如果插入的每个新行的序列号仅增加 +1,则您的查询应返回您所追求的 price
和 max(Serial)
,因此下次您查询该值时您可以使用过滤器来表示数据集:
哪里[序列] > @Max_Serial_From_Your_Last_Query
关于python - 如何查询 sql server 表的新行以更新整个表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870061/