これはsqlite3のデータベースからのデータのサンプルです:別の列の別の値に対応する列の値の最大値を見つける方法はありますか? (記述例)
playerID nameFirst nameLast HR (homeruns)
bondsba01 Barry Bonds 73
mcgwima01 Mark McGwire 70
sosasa01 Sammy Sosa 66
mcgwima01 Mark McGwire 65
sosasa01 Sammy Sosa 64
sosasa01 Sammy Sosa 63
marisro01 Roger Maris 61
ruthba01 Babe Ruth 60
ruthba01 Babe Ruth 59
foxxji01 Jimmie Foxx 58
greenha01 Hank Greenberg 58
...truncated...
私はこのデータを選択するには、このコマンドを使用しました:
SELECT Master.playerID, Master.nameFirst, Master.nameLast, Batting.HR
FROM Master
INNER JOIN Batting on Master.playerID = Batting.playerID
ORDER BY Batting.HR DESC
LIMIT 100;
はBaiscally私は次のように答えるようにしたいです質問:ホームランの数でトップ20の野球選手は何ですか?しかし、見ることができるように、いくつかのプレイヤーは複数のエントリーを持っています。なぜなら、そのテーブルにはプレイヤーが活動していた年数のデータがあるからです。
すでにpandas
とその他のPythonコマンドを使用して質問に回答しました。しかし、私は単一のSQLクエリで質問に答えることができるようにしたい。私はDISTINCT
、GROUP BY
など
と2つのことを成功させずに試しました。もっと明確にするために、私は一人のプレイヤーが持っていたホームランの最大数を求めます。そして、私はこれらの一意の名前すべてをホームランの数で並べ替える必要があります。
私はこれに、上記の表をtransfromたい:
playerID nameFirst nameLast HR (homeruns)
bondsba01 Barry Bonds 73
mcgwima01 Mark McGwire 70
sosasa01 Sammy Sosa 66
marisro01 Roger Maris 61
ruthba01 Babe Ruth 60
foxxji01 Jimmie Foxx 58
greenha01 Hank Greenberg 58
私は、これは非常に難しいことではありませんが、私はSQLでの多くの経験を持っていないと思います。 MAXを使用して
、それが動作します。私は 'ORDER BY Runs DESC'を追加するだけでした。 – Alex
正解として投票できる場合は歓迎します – mohan111