Есть таблица, где хранятся результативные действия игроков. Есть поле, которые под определенным индексом хранит определенное действие(1-гол, 2-пас) и поле id игрока. Как подсчитать количество голов каждого игрока.
Было бы проще конечно видя структуру базы.
CREATE TABLE `gol` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL,
`event_enum` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;
INSERT INTO `gol` (`id`, `user_id`, `event_enum`) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 1, 1),
(4, 2, 1),
(5, 3, 2);
Если правильно понял, и вам посчитать только количество голов. То так
SELECT
g.user_id,
COUNT(*) AS golCount
FROM gol g
WHERE g.event_enum = 1
GROUP BY g.user_id
Если конкретно каждого типа событий то можно
SELECT
g.user_id,
g.event_enum,
COUNT(*) AS countEvent
FROM gol g
GROUP BY g.user_id, event_enum
Либо
SELECT
g.user_id,
COUNT(IF (event_enum = 1, 1, NULL)) AS golCounter,
COUNT(IF (event_enum = 2, 1, NULL)) AS pasCounter
FROM gol g
GROUP BY g.user_id
Сборка персонального компьютера от Artline: умный выбор для современных пользователей