【发布时间】:2014-11-21 13:19:53
【问题描述】:
union all 查询如何优化派生表?
问题
- 我想删除冗余。
- “团队”表被使用了两次
SELECT series_id, team, SUM(Win) As Won, SUM(Loss) as Lost
FROM
( SELECT *,radiant_name as team,
CASE WHEN radiant_win = 1 THEN 1 ELSE 0 END as Win,
CASE WHEN radiant_win = 1 THEN 0 ELSE 1 END as Loss
FROM matches
UNION ALL
SELECT *,dire_name as team,
CASE WHEN radiant_win = 0 THEN 1 ELSE 0 END as Win,
CASE WHEN radiant_win = 0 THEN 0 ELSE 1 END as Loss
FROM matches
) as temp
WHERE series_id = 8313
GROUP By team
ORDER By Won, Lost DESC
【问题讨论】: