sql >> データベース >  >> RDS >> Mysql

MySQLバレーボールの順位

    これはあなたが望むことをするはずです:

    SELECT
        team_id,
        COUNT(*) AS GP,
        SUM(is_win) AS Wins,
        SUM(NOT is_win) AS Losses,
        2 * SUM(is_win) + SUM(NOT is_win) AS Points
    FROM
    (
        SELECT
            home_team_id AS team_id,
            home_score > visit_score AS is_win
        FROM results
        WHERE tcl_id = 68
        UNION ALL
        SELECT
            visit_team_id AS team_id,
            home_score < visit_score AS is_win
        FROM results
        WHERE tcl_id = 68
    ) T1
    GROUP BY team_id
    ORDER BY Points DESC
    

    サンプルデータの出力:

    4, 3, 2, 1, 5
    3, 3, 2, 1, 5
    1, 3, 1, 2, 4
    2, 3, 1, 2, 4
    

    注:

    • サンプルデータが期待される出力と一致していないようです。テストデータには6つのゲームしかプレイされていませんが、期待される出力には8つのゲームがあります。これが私の出力があなたの出力と異なる理由です。
    • チームIDからチーム名を取得するためのテーブルを提供していません。チーム名を使用してテーブルに参加するだけで、希望する形式の結果を得ることができます。



    1. MySQLのこの演算子<=>は何ですか?

    2. JSONをMySQLテーブルに挿入するか、存在する場合は更新します

    3. Eclipse-新しいMariaDB接続を追加する方法

    4. PHPを使用してチェックボックスを選択し、複数の行を削除します