如果可能的话,我想在一个中缩短这4个选项,或者只是将所有选择结果加起来
SELECT COUNT(igrac2) FROM tekma
WHERE igrac2 LIKE "Dony" AND golovi1<golovi2
SELECT COUNT(igrac2) FROM tekma
WHERE igrac2 LIKE "Dony" AND golovi1=golovi2 and penali=2
SELECT COUNT(igrac1) FROM tekma
WHERE igrac1 LIKE "Dony" AND golovi1>golovi2
SELECT COUNT(igrac1) FROM tekma
WHERE igrac1 LIKE "Dony" AND golovi1=golovi2 AND penali=1
答案 0 :(得分:1)
你可以这样做:
SELECT
SUM(IF(igrac2 LIKE "Dony" AND golovi1 < golovi2, 1, 0)) +
SUM(IF(igrac2 LIKE "Dony" AND golovi1 = golovi2 and penali = 2, 1, 0)) +
SUM(IF(igrac1 LIKE "Dony" AND golovi1 > golovi2, 1, 0)) +
SUM(IF(igrac1 LIKE "Dony" AND golovi1 = golovi2 AND penali = 1, 1, 0))
FROM tekma
WHERE (igrac2 LIKE "Dony" AND golovi1 < golovi2)
OR (igrac2 LIKE "Dony" AND golovi1 = golovi2 and penali = 2)
OR (igrac1 LIKE "Dony" AND golovi1 > golovi2)
OR (igrac1 LIKE "Dony" AND golovi1 = golovi2 AND penali = 1)
WHERE子句是可选的,只要在这种情况下获得有效的结果,但是如果你的表很大并且匹配结果的数量很小,那么留下它是有益的。
答案 1 :(得分:0)
您可以使用条件和作为
select
sum( case when igrac2 = 'Dony' and golovi1<golovi2 then 1 else 0 end) as sum1,
sum( case when igrac2 = 'Dony' and golovi1=golovi2 and penali=2 then 1 else 0 end) as sum2,
sum( case when igrac2 = 'Dony' and golovi1>golovi2 then 1 else 0 end) as sum3,
sum( case when igrac2 = 'Dony' and golovi1=golovi2 and penali=1 then 1 else 0 end) as sum4
from tekma
答案 2 :(得分:0)
你可以试试这个:
SELECT
SUM(IF(igrac2 LIKE "Dony" AND golovi1<golovi2, 1, 0)) AS count1,
SUM(IF(igrac2 LIKE "Dony" AND golovi1=golovi2 and penali=2)) AS count2,
SUM(IF(igrac1 LIKE "Dony" AND golovi1>golovi2, 1,0)) AS count3,
SUM(IF(igrac1 LIKE "Dony" AND golovi1=golovi2 AND penali=1, 1,0)) AS count4
FROM tekma
获得总数:
SELECT
(SUM(IF(igrac2 LIKE "Dony" AND golovi1<golovi2, 1, 0)) +
SUM(IF(igrac2 LIKE "Dony" AND golovi1=golovi2 and penali=2)) +
SUM(IF(igrac1 LIKE "Dony" AND golovi1>golovi2, 1,0)) +
SUM(IF(igrac1 LIKE "Dony" AND golovi1=golovi2 AND penali=1, 1,0))) AS totalCount
FROM tekma