我有一种情况,我需要找到3个计算字段的最大值,并将其存储在另一个字段中,是否可以在一个sql查询中这样做?下面是一个例子
SELECT
Income1, Income1 * 2% as Personal_Income, Income2, Income2 * 10% as Share_Income, Income3, Income3 * 1% as Job_Income, Max(Personal_Income, Share_Income, Job_Income) From Table
我试过的一种方法是计算个人收入,分享收入,第一次和第二次的工作收入
Select Case when Personal_income > Share_Income and Personal_Income > Job_Income then Personal_income when Share_income > Job_Income then Share_income Else Job_income as the greatest_income
但是这需要我在一个十亿行的表上做两次扫描,我怎样才能避免这种情况,并且一次就完成呢?非常感谢您的帮助。
1条答案
按热度按时间lc8prwob1#
你可以用
greatest
这将导致给定行的多个列中的最大值。注意:这不是聚合函数,其他列可以包含在
select
根据需要。