记录一下sql中sum和avg的两种用法

41 阅读1分钟

力扣1934,确认率

avg中可以写过滤:

SELECT s.user_id, ROUND(IFNULL(AVG(c.action='confirmed'), 0), 2) AS confirmation_rate FROM Signups AS s LEFT JOIN Confirmations AS c ON s.user_id = c.user_id GROUP BY s.user_id

sum:

SELECT s.user_id, ifnull( round( sum( action = 'confirmed' ) / count( c.action ), 2 ), 0.00 ) AS confirmation_rate FROM signups AS s LEFT JOIN confirmations AS c ON s.user_id = c.user_id GROUP BY s.user_id