python - 如何查询 sql server 表的新行以更新整个表的结果

标签 python sql-server

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,则您的查询应返回您所追求的 pricemax(Serial),因此下次您查询该值时您可以使用过滤器来表示数据集:

哪里[序列] > @Max_Serial_From_Your_Last_Query

关于python - 如何查询 sql server 表的新行以更新整个表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870061/

相关文章:

sql - SQL 中 XML 分解的替代方案

sql - 这是语法错误吗?

SQL 将字符串(日期或文本)转换为日期

SQL错误(102): incorrect syntax near "="

python - Tensorflow 的对象检测 API 的输出是什么?

python 搜索 allflicks(一个网站)以查看 netflix 上是否有节目

sql - 如何将字段内的值总和分配给变量?

python - 您可以在 python 中手动对列表进行排序吗?

python - 对具有列表值的列使用 isin()

python - pandas groupby的求和结果