我有两个出价列bidsprice1和bidsprice2的出价表。并且所有用户都有bidsprice1 金额,有些用户也有bidsprice2 金额。
我想计算sum(bidsprice2)
基于bidsprice2
,如果某些用户有 null bidsprice2
,那么基于它的bidsprice1
.
如何编写这个求和查询?
我有两个出价列bidsprice1和bidsprice2的出价表。并且所有用户都有bidsprice1 金额,有些用户也有bidsprice2 金额。
我想计算sum(bidsprice2)
基于bidsprice2
,如果某些用户有 null bidsprice2
,那么基于它的bidsprice1
.
如何编写这个求和查询?
用于COALESCE()
返回第一个非 NULL 参数。那可以直接包裹在聚合里面SUM()
。这样做的好处是可以在需要时添加额外的列。
SELECT
/* SUM() based on bidsprice2 if non-null, bidsprice1, or finally 0 if both NULL */
SUM(COALESCE(bidsprice2, bidsprice1, 0)) AS your_sum
FROM yourtable
SUM(CASE WHEN bidsprice2 IS NULL THEN bidsprice1 ELSE bidsprice2 END)
在 MySQL 中