gpt4 book ai didi

mysql - DBMS 如何解决以下查询?

转载 作者:行者123 更新时间:2023-11-29 12:15:34 27 4
gpt4 key购买 nike

假设我有一个表 Table1,其中包含属性 id、姓名、地址、薪水。现在,我编写以下查询:

SELECT * FROM Table1 WHERE 2*Salary > (SELECT MAX(Salary) FROM Table1)

很明显,查询

SELECT MAX(Salary) FROM Table1

将为 Table1 中的每一行生成相同的结果。那么,DBMS 是对每一行执行一次聚合查询,还是执行一次并存储要与每一行进行比较的值?如果是这样,DBMS 如何确定该查询的结果独立于 Table1 中的行?

因为,我想知道为每一行执行一次会非常低效。

最佳答案

尝试首先将最大值存储在变量中,然后使用该变量

Declare @Salary money
SELECT @Salary=MAX(Salary) FROM #yourTable
SELECT * FROM #yourTable WHERE 2*Salary > @Salary

关于mysql - DBMS 如何解决以下查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29860936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com