GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化してカウントし、最終的にグループ サマリー テーブルを取得できます。 SELECT 句の列名は、グループ化列、または group by 句で定義された各グループの結果を返す列関数である必要があります。 従業員情報テーブルの構造とデータは次のとおりです。 ID 名前 部門 給与 教育レベル 雇用日 1 張三開発部 2000 3 2009-10-11 2 李思開発部 2500 3 2009-10-01 3 王武設計部 2600 5 2010-10-02 4 王 劉 設計部 2300 4 2010-10-03 5 マキデザイン部 2100 4 2010-10-06 6 趙巴 営業部 3000 5 2010-10-05 7 千九営業部 3100 7 2010-10-07 8 サンテン営業部 3500 7 2010-10-06 各部門の最高給与をリストしたいです。SQL ステートメントは次のようになります。 部門、最大(給与)を最大として選択します スタッフより 部門別グループ クエリ結果は次のとおりです。 部門最大 開発部 4500 デザイン部 2600 営業部 3500 この結果を説明してください: 1. SELECT には group by に含まれる列 dept があるため、「SELECT 句の列名はグループ化列または列関数である必要があります」という条件は満たされます。 2. 「列関数は、group by 句で定義された各グループの結果を返します」。部門のグループ化に従って、各部門の最高給与である結果が部門ごとに返されます。 where句とgroup by句の使用 グループ化されたクエリには、グループと計算列関数を形成する前に、不適格な行を削除する標準の where 句を含めることができます。 where句はgroup by句の前に指定する必要があります たとえば、2010年に入社した社員の、各部門と各レベルの最高給与を照会する 部門、教育レベル、MAX(給与) を MAXIMUM として選択します スタッフより ここで、 hiredate > '2010-01-01' 部門、教育レベル別にグループ化 クエリ結果は次のとおりです。 学部教育レベル最大 デザイン部4 2300 デザイン部5 2600 営業部5 3000 営業部 7 3500 SELECT ステートメントで指定されたすべての列名は、GROUP BY 句でも指定されます。両方の場所で列名が指定されていない場合は、エラーが発生します。 GROUP BY 句は、dept と edlevel の一意の組み合わせごとに 1 行を返します。 GROUP BY 句の後に Having 句を使用する 条件を満たすグループの結果のみが返されるように、グループ化に条件を適用できます。したがって、GROUP BY 句の後に HAVING 句が含まれます。 HAVING は WHERE に似ています (唯一の違いは、WHERE は行をフィルターし、HAVING はグループをフィルターすることです)。HAVING はすべての WHERE 演算子をサポートします。 たとえば、従業員が 2 人以上いる部門の最高給与と最低給与を検索するには、次のようにします。 部門、MAX(給与) を MAXIMUM、MIN(給与) を MINIMUM として選択します。 スタッフより 部門別にグループ化 カウント(*) > 2 部門別に注文 クエリ結果は次のとおりです。 部門 最大 最小 デザイン部 2600 2100 営業部 3500 3000 たとえば、従業員の平均給与が 3000 を超える部門で最高給与と最低給与を検索するには、次のようにします。 部門、MAX(給与) を MAXIMUM、MIN(給与) を MINIMUM として選択します。 スタッフより 部門別にグループ化 平均給与が3000以上 部門別に注文 クエリ結果は次のとおりです。 部門 最大 最小 営業部 3500 3000 MySQL の group by と having の詳しい使い方については、これで終わりです。MySQL の group by と having に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux の操作とメンテナンスの基本システムディスク管理チュートリアル
>>: CSS テキスト強調を使用してテキストを強調するための実装コード
この記事では、JavaScript メッセージ ボードでメッセージを追加および削除する小さな例を詳細...
バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...
ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...
結合の書き方左結合を使用する場合、左側のテーブルが必ず駆動テーブルになりますか? 2 つのテーブルの...
CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...
ここに <input type="image"> がある場合、この画...
実行中のコンテナに入る # コンテナに入り、新しいターミナルを開きます# docker exec -...
操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...
フィルターを使用して画像に透明な CSS を書く方法コードをコピーコードは次のとおりです。 html...
目次1. MySQLのコンパイルとインストール: 2. 最初のマルチインスタンス3307を準備する3...
目次ステップ1. ルーティング ルールを設定し、子構成項目を使用します。 2. ジャンプ(フルパスを...
最初の方法: Junge のワンクリック スクリプトを使用して、LNMP 環境で MYSQL データ...
1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...
目次回避策Vue2.0 で 2 つの配列の変更を監視できないのはなぜですか?ソースコード分析ヴュー3...
目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...