我有一个包含一些列的表,我想对一列求和并将该值与其他单列值进行比较。如果第一列的总和等于另一列的最后一行,则还可以显示此差异。 例子。
表abc具有列代码val_1和val_2
code val_1 val_2
A_1 200 100
A_1 150 50
A_1 250 25
A_1 50 650
现在,如果val_1的总和等于Val_2的最后一行“ 650”,那么如果不相等,则显示该行。
答案 0 :(得分:1)
SQL表表示无序表。没有“最后一行”。
如果您有订购栏,则可以使用窗口功能:
select t.*
from (select t.*,
sum(val_1) over (partition by code) as sum_val_1,
row_number() over (partition by code order by <orderingcol> desc) as seqnum
from t
) t
where seqnum = 1 and sum_val_1 <> val_2;
如果val_2
中的最后一个值始终是最大值,那么聚合就足够了:
select code
from t
group by code
having sum(val_1) <> max(val_2);