найти значение MAX в подсчете - PullRequest
0 голосов
/ 16 сентября 2011

Мой код

$query = "SELECT teamID, season,
    MAX(season) AS current_season,
    COUNT(DISTINCT matchID AND season=current_season) AS season_games_played,
    FROM finances
    WHERE teamID = '$_SESSION[teamID]'";

, но это дает мне ошибку: (

Я пытаюсь получить количество игр, в которых команда играла в этом сезоне, поэтомуcurrent_season должен быть МАКСИМАЛЬНЫМ значением сезона столбца.

Моя следующая строка кода - выяснить, сколько игр команда сыграла в прошлом сезоне (MAX (сезон) -1), я полагаю, но как это будетнаписано?

Ответы [ 2 ]

1 голос
/ 16 сентября 2011
SELECT
    teamID,
    season,
    COUNT(DISTINCT matchID) AS season_games_played,
FROM finances
WHERE teamID = ?
GROUP BY 1, 2
ORDER BY 2 DESC;

В первом ряду будет самый последний сезон, во втором ряду будет второй самый последний сезон и т. Д.

1 голос
/ 16 сентября 2011

Самый простой способ сделать это, вероятно, будет

SELECT
     season,
       COUNT(DISTINCT matchID) AS season_games_played
    FROM finances
    WHERE teamID = '$_SESSION[teamID]' /*<-- Probable SQL injection risk!*/
    GROUP BY season
    ORDER BY season DESC
    LIMIT 2;

Я удалил teamID из списка SELECT, поскольку вы уже передаете его, так что знайте, что уже.

Я предполагаю, '$_SESSION[teamID]' это php или что-то в этом роде. Пожалуйста, прочтите, как избежать SQL-инъекций на этом языке.

...