MySQL でグループ化した後、各グループの最大値を取得する詳細な例 1. テストデータベーステーブルは次のとおりです。 テーブルテストの作成 ( `id` int NULLではない自動増分、 `name` varchar(20) NULLでないデフォルト '' `score` int NULLでないデフォルト0、 主キー (`id`) )エンジン=InnoDB CHARSET=UTF8; 2. 次のデータを挿入します。 mysql> テストから * を選択します。 +----+----------+-------+ | ID | 名前 | スコア | +----+----------+-------+ | 1 | ジェイソン | 1 | | 2 | ジェイソン | 2 | | 3 | ジェイソン | 3 | | 4 | リンジエ | 1 | | 5 | リンジエ | 2 | | 6 | リンジエ | 3 | | 7 | 暁頂 | 1 | | 8 | 暁頂 | 2 | | 9 | 暁頂 | 3 | | 10 | ハスト | 2 | | 11 | ハスト | 3 | | 12 | ハスト | 1 | | 13 | ははは | 1 | | 14 | ははは | 2 | | 15 | デンジ | 3 | | 16 | デンジ | 4 | | 17 | デンジ | 5 | | 18 | シャジ | 3 | | 19 | シャジ | 4 | | 20 | シャジ | 2 | +----+----------+-------+ 3. 以下が重要なポイントです。目的は、名前でグループ化し、グループ化後に各グループの最高スコアを取得することです。SQLは次のとおりです。 a.* をテスト a から選択し、内部結合 (名前、最大 (スコア) スコアをテスト グループから名前で選択)b を a に対して選択します。 name=b.name かつ a.score=b.score は a.name で順序付けられます。 もちろん、上記のa.nameによる最後の順序は削除できます。 4. テスト結果は次のとおりです。 +----+----------+-------+ | ID | 名前 | スコア | +----+----------+-------+ | 3 | ジェイソン | 3 | | 6 | リンジエ | 3 | | 9 | 暁頂 | 3 | | 11 | ハスト | 3 | | 14 | ははは | 2 | | 17 | デンジ | 5 | | 19 | シャジ | 4 | +----+----------+-------+ 5. インターネット上の多くの方法は間違っており、例えば以下のようなもので、個人的にテストしてもうまくいきません。 select * from (select * from test order by score desc) t group by name order by score desc limit 4; 名前でテストグループからスコア、最大(スコア)を選択します。 select * from test where score in (select max(score) from test group by name); select * from test where score in (select substring_index(group_concat(score order by score desc Separator ','),',',1) from test group by name); select * from (select name,score,ROW_NUMBER() over(group by name order by score desc) as rowNum from test) rank where rank.rowNum <=1 order by rank.score desc; select * from( select StoresNo,[CustomerCaseNo],[PaymentsTime], ROW_NUMBER() over(partition by CustomerCaseNo order by [PaymentsTime] desc) as rowNum BAL_paymentsSwiftInfo から、StoresNo='zq00000034' の場合) ランク付けされ、ranked.rowNum <= 1 で、ranked.CustomerCaseNo、ranked.PaymentsTime で順序付けされます。 select * from (select * from test order by score desc) を a.name でグループ化して選択します。 読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Docker ベースの Etcd 分散デプロイメントの方法と手順
>>: nginx を https をサポートするように設定するためのサンプル コード
誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...
名前キャラクター名前キャラクター情報ニューステクノロジー技術スキンケアスキンケア補う補う香水香水化粧...
他の人から「つまらない」とか「時代遅れ」というフィードバックを受けて、それを変更しようとしたのに、更...
Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...
目次1.Json文字列1.1Json構文1.2 例2. クッキー2.1 使い方は? 3. ローカルス...
COALESCE は、各パラメータ式 (expression_1、expression_2、...、...
目次インストールパッケージのダウンロードインストール環境変数の設定インストールが成功したか確認する記...
関連記事: Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールする...
MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...
前回の記事では、Vue で画像の切り抜きや拡大・縮小、回転を実現する方法を紹介しました。今回は、アイ...
目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...
目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...
アプリケーションシナリオ多くの場合、Linux サーバーに tomcat や nginx などのソフ...
will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...
1. 一般的なMySQLの設定以下のすべての構成パラメータは、32G のメモリを搭載したサーバーに基...