SQL中计算商品平均价格时排除现金支付的实现方法
计算商品平均价格时排除指定支付方式的记录
假设你的数据表名为transactions,包含price(商品价格)和payment_method(支付方式)字段,要计算排除现金支付(cash payments)后的平均价格,可以用以下SQL语句:
SELECT AVG(price) AS avg_price_excluding_cash FROM transactions WHERE payment_method != 'cash payments';
关键细节说明:
WHERE payment_method != 'cash payments'直接过滤掉所有支付方式为现金的记录,只保留其他支付方式的交易数据AVG(price)对过滤后的有效记录计算价格平均值,用AS给结果列命名为avg_price_excluding_cash,方便识别结果
如果你的支付方式字段可能存在NULL值(即未记录支付方式的情况),若希望同时排除这些NULL记录,可以调整WHERE条件:
SELECT AVG(price) AS avg_price_excluding_cash_and_null FROM transactions WHERE payment_method != 'cash payments' AND payment_method IS NOT NULL;
或者用COALESCE函数简化判断,把NULL值替换为非目标字符串后再过滤:
SELECT AVG(price) AS avg_price_excluding_cash_and_null FROM transactions WHERE COALESCE(payment_method, '') != 'cash payments';
内容的提问来源于stack exchange,提问作者Jorge
相关产品推荐
相关产品推荐

