count, sum和 if,case when

来源:互联网 发布:瑞士军刀软件 编辑:程序博客网 时间:2024/06/05 14:10

sum有时也可以理解为count 

count不一定会得到正确的答案

SELECT

AcUserID,
r.RoundID,
sum(if(r.MyGuess=e.ResultGuess, 1,0)) as rightno

FROM
tbStockActiveUserGuessRec201609 r
LEFT JOIN tbStockActiveGuessResult e ON r.MarketDay = e.MarketDay

GROUP BY
r.AcUserID,

r.RoundID

****************************************

SELECT
AcUserID,
r.RoundID,
count(if(r.MyGuess=e.ResultGuess, 1,0)) as rightno

FROM
tbStockActiveUserGuessRec201609 r
LEFT JOIN tbStockActiveGuessResult e ON r.MarketDay = e.MarketDay

GROUP BY
r.AcUserID,

r.RoundID


****************************************


SELECT
AcUserID,
r.RoundID,
if(r.MyGuess=e.ResultGuess, 1,0)) as FType
count(1) as RightErrNo
FROM
tbStockActiveUserGuessRec201609 r
LEFT JOIN tbStockActiveGuessResult e ON r.MarketDay = e.MarketDay

GROUP BY
r.AcUserID,

r.RoundID,

FType


IFNULL(SUM(CASE WHEN a.MyGuess=b.ResultGuess THEN 1  END),0) as rightno



0 0
原创粉丝点击