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

MySQLの上位5つの値を合計する

    これを試してください:

    SELECT driver, SUM(`position`)
    FROM (SELECT driver, race, season, `position`, 
                 IF(@lastDriver=(@lastDriver:=driver), @auto:[email protected]+1, @auto:=1) indx 
          FROM results, (SELECT @lastDriver:=0, @auto:=1) A 
          ORDER BY driver, `position`) AS A  
    WHERE indx <= 5 
    GROUP BY driver ;
    


    1. データベースレコードに対してNULLをチェック->issetvs.is_null

    2. 左側/右側のユーザー定義演算子を作成します

    3. 右テーブルの最大値に対するmysqlLEFT結合

    4. SQLServerのテーブル値関数を介してデータを更新する