テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルtest.rewardを作成します( id int(11) NOT NULL AUTO_INCREMENT、 uid int(11) NOT NULL COMMENT 'ユーザーuid', お金 小数点(10, 2) NOT NULL COMMENT '報酬額', datatime datetime NOT NULL COMMENT 'time', 主キー (id) ) エンジン = INNODB AUTO_INCREMENT = 1 文字セット utf8 utf8_general_ci を照合する COMMENT = '報酬テーブル'; 表のデータは次のとおりです。 ここで、各人が受け取った最高の報酬を照会し、それを最大から最小の順に並べ替える必要があります。 直接問い合わせる場合: 以下の結果が得られます。 必要な結果が得られませんでした。これは、group by と order by を一緒に使用すると、最初に group by が使用され、グループ化後の最初のデータが取り出されるためです。したがって、その後の order by による並べ替えは、取り出された最初のデータに基づいて行われますが、最初のデータは必ずしもグループ内で最大のデータであるとは限りません。 方法1: この場合、最初に並べ替え、次にグループ化し、サブクエリを使用できます。 選択 取り除く、 r.uid、 r.お金、 r.データタイム から(選択 id、 uid、 お金、 データタイム 報酬から 金額順(降順)r GROUP BY r.uid ORDER BY r.money DESC; 方法2: レコード全体を取得する必要がない場合は、max() min() を使用できます。 結果は次のとおりです。 max() を使用して取得したレコードの money フィールドと max(money) フィールドに矛盾があることに気付いたかもしれません。これは、ここでは uid の最大値のみが取得され、最大値に対応するレコード全体が取得されないためです。 レコード全体を取得する必要がある場合は、このメソッドは使用できず、サブクエリを使用できます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...
解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...
目次1. トラバーサルクラス1. 各2. 地図3. すべての4. いくつか5. フィルター6. 減ら...
CSS3 では画像の色を変更できます。これからは複数の絵をデザインする必要がなくなり、いつでも修正で...
多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...
このキー属性の機能は何ですか?まずは公式の説明を見てみましょう。 kekey 属性は主に、新しいノー...
ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...
Vim は Linux でよく使用されるテキスト エディターです。 Vim は、Sublime や ...
1. はじめに実際のサーバーはパブリックインターネットに直接公開されるべきではありません。そうしな...
<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...
導入この章では、主に Linux で FTP サーバーを構築するプロセスを紹介します。習得すべき重要...
方法1: SET PASSWORDコマンドを使用する mysql -u ルート mysql> ...
k8s の最小のスケジューリング単位 --- pod前回の記事では、k8s が解決できる問題を簡単に...
システムをコンピューターにインストールする方法がわからない場合は、Linux を学習したい場合は、仮...
許可ベースの電子メール マーケティングにより、マーケティングとプロモーションのコストを大幅に削減でき...