Mysql 查找百分比的用例-选择案例子查询
几乎是MySQL的初学者。目前正在通过Lynda.com学习 我有一个包含以下表格的数据库Mysql 查找百分比的用例-选择案例子查询,mysql,subquery,case,percentage,Mysql,Subquery,Case,Percentage,几乎是MySQL的初学者。目前正在通过Lynda.com学习 我有一个包含以下表格的数据库 tblmatches - matchID, matchdate, matchtime, matchstatus, teamhomeID, teamAwayID, matchscorehome, matchscoreaway, seasonID, competitonID tblteam - teamID, teamName 我想知道每个队有多少场比赛,两队都有得分 我用下面的语句来计算比赛次数(p
tblmatches - matchID, matchdate, matchtime, matchstatus, teamhomeID, teamAwayID, matchscorehome, matchscoreaway, seasonID, competitonID
tblteam - teamID, teamName
我想知道每个队有多少场比赛,两队都有得分
我用下面的语句来计算比赛次数(p),两支球队中有多少场比赛得分(y),但无法计算出如何得到百分比
我按球队名称分组,必须同时使用主客场比赛
SELECT
teamName AS Team,
Sum(P) AS P,
SUM(Y) AS Y
FROM(
SELECT
teamHomeID Team,
1 P,
CASE WHEN matchScoreHome AND matchScoreAway > 0 THEN 1 ELSE 0 END Y
FROM tblmatches WHERE matchstatus = 'FT' AND competitionID = 1 AND seasonID = 2
UNION ALL
SELECT
teamAwayID,
1,
CASE WHEN matchScoreHome AND matchScoreAway > 0 THEN 1 ELSE 0 END Y
FROM tblmatches WHERE matchstatus = 'FT' AND competitionID = 1 AND seasonID = 2
) as tab
JOIN tblteam t ON tab.team=t.teamID
GROUP BY Team
ORDER BY SUM(Y) DESC ;
任何帮助都将不胜感激 找到了答案,因为仍在学习的人并没有意识到mysql可以工作,而是从引号之间的内容开始。那时我意识到SUM必须在子查询之外,通过google进行一点搜索,并知道如何输入初始选择
SELECT
teamName AS Team,
Sum(P) AS P,
SUM(Y) AS Y,
(SUM(Y) * 100) / SUM(P) AS 'BTTS PCT'
FROM(
SELECT
teamHomeID Team,
1 P,
CASE
WHEN matchScoreHome AND matchScoreAway > 0 THEN 1 ELSE 0
END Y
FROM tblmatches WHERE matchstatus = 'FT' AND competitionID = 1 AND seasonID = 2
UNION ALL
SELECT
teamAwayID,
1,
CASE
WHEN matchScoreHome AND matchScoreAway > 0 THEN 1 ELSE 0
END Y
FROM tblmatches WHERE matchstatus = 'FT' AND competitionID = 1 AND seasonID = 2
) as tab
JOIN tblteam t ON tab.team=t.teamID
GROUP BY Team
ORDER BY SUM(Y) DESC ;