단순한 것으로 보이는 문제를 발견했지만 문제가 있습니다. 어떤 도움이라도 대단히 감사합니다. 내가보고 싶은카운트 쿼리가 적절하게 그룹화되지 않았습니다.
CREATE TABLE IF NOT EXISTS `match_history` (
`id` int(11) NOT NULL auto_increment,
`match_id` int(11) NOT NULL,
`team_id` int(11) NOT NULL,
`player_id` int(11) NOT NULL,
`map` varchar(150) NOT NULL,
`score` int(11) NOT NULL,
`outcome` varchar(25) NOT NULL,
`notes` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=271 ;
match_id links to matches.id
team_id links to matchteams.id
player_id links to persons.id
는 승리 팀 당 손실이지만, 위의 match_history 표는 경기마다 팀에 여러 행이 때문에 나는 문제가 있어요.
INSERT INTO `match_history` (`id`, `match_id`, `team_id`, `player_id`, `map`, `score`, `outcome`, `notes`) VALUES
(221, 44, 2, 124, 'Village', 1570, 'Win', ''),
(220, 44, 2, 115, 'Village', 1600, 'Win', ''),
(219, 44, 2, 92, 'Village', 2740, 'Win', ''),
(218, 44, 4, 105, 'Village',1000, 'Loss', ''),
(217, 44, 4, 111, 'Village', 1220, 'Loss', ''),
(216, 44, 4, 130, 'Village', 1440, 'Loss', ''),
(215, 44, 4, 122, 'Village', 2160, 'Loss', ''),
(214, 44, 4, 130, 'Seatown', 1410, 'Loss', ''),
(213, 44, 4, 122, 'Seatown', 1600, 'Loss', ''),
(212, 44, 4, 111, 'Seatown', 1790, 'Loss', ''),
(211, 44, 4, 105, 'Seatown', 1790, 'Loss', ''),
(210, 44, 2, 113, 'Seatown', 1020, 'Win', ''),
(209, 44, 2, 124, 'Seatown', 1480, 'Win', ''),
(207, 44, 2, 115, 'Seatown', 2850, 'Win', ''),
(208, 44, 2, 92, 'Seatown', 2160, 'Win', ''),
(222, 44, 2, 113, 'Village', 900, 'Win', ''),
(223, 45, 1, 123, 'Hardhat', 2970, 'Win', ''),
(224, 45, 1, 26, 'Hardhat', 2930, 'Win', ''),
(225, 45, 1, 107, 'Hardhat', 1710, 'Win', ''),
(226, 45, 3, 101, 'Hardhat', 1530, 'Loss', ''),
(227, 45, 3, 100, 'Hardhat', 1420, 'Loss', ''),
(228, 45, 3, 125, 'Hardhat', 1010, 'Loss', ''),
(229, 45, 1, 107, 'Seatown', 2520, 'Win', ''),
(230, 45, 1, 123, 'Seatown', 2260, 'Win', ''),
(231, 45, 1, 26, 'Seatown', 1560, 'Win', ''),
(232, 45, 3, 101, 'Seatown', 1510, 25, 3, 42, 0.6, 0, 0, 0, 'Loss', ''),
이 내가 사용하던 쿼리이지만 1
select mh.team_id as team_id, COUNT(distinct(mh.match_id)) as matches,
count(mh.map) as maps, mh.outcome, SUM(IF(mh.outcome='Win',1,0)) as wins,
SUM(IF(mh.outcome='Loss',1,0)) as losses, m.id, mt.name as teamname
FROM match_history mh, matches m, ladders l, match_teams mt
WHERE mh.team_id = mt.id and mh.match_id = m.id and
m.ladder_id = l.id and l.type = 'internal'
GROUP by mh.team_id
ORDER by wins desc
마지막 삽입물은 무엇입니까? –