Подсчет количества голов. SQL запрос

249
21 июня 2018, 03:30

Есть таблица, где хранятся результативные действия игроков. Есть поле, которые под определенным индексом хранит определенное действие(1-гол, 2-пас) и поле id игрока. Как подсчитать количество голов каждого игрока.

Answer 1

Было бы проще конечно видя структуру базы.

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
READ ALSO
Protected связь через Parent

Protected связь через Parent

Я что-то в этой жизни пропустилПочему property x доступна как public? PHP работает с protected не только с дочерними элементами, но и связывает их через...

219
PHP Отправка длинного письма на почту

PHP Отправка длинного письма на почту

Есть текст, в котором > 70 символовПри отправке на почту, письмо не доставляется, хотя функция mail() возвращает true

225
Редирект на страницу через php

Редирект на страницу через php

Как сделать так, чтобы при редиректе через header() текущее положение на странице оставалось на своем месте и не перекидывало на верх страницы?

244
Как вывести данные с phpmyadmin и отобразить в таблице?

Как вывести данные с phpmyadmin и отобразить в таблице?

Есть 4 таблицы и база данных ( с php никогда не работал) Как можно выводить данные в таблицу самым простым способом ?

329