私は 2 つの入札価格列bidsprice1とbidsprice2を持つ入札テーブルを持っています。また、すべてのユーザーがbidsprice1 amountを持っており、一部のユーザーはbidsprice2 amountを持っています。
sum(bidsprice2)
に基づいて計算したいのですがbidsprice2
、一部のユーザーが nullを持っている場合bidsprice2
は、その に基づいていbidsprice1
ます。
この合計クエリの書き方
私は 2 つの入札価格列bidsprice1とbidsprice2を持つ入札テーブルを持っています。また、すべてのユーザーがbidsprice1 amountを持っており、一部のユーザーはbidsprice2 amountを持っています。
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 では