使用状況分析を備えたMySQL

使用状況分析を備えたMySQL

持つことの使用法

having 句を使用すると、グループ化後にさまざまなデータをフィルター処理できます。また、where 句は集計前にレコードをフィルター処理します。つまり、group by 句と having 句の前に機能します。 having 句は、集計後にグループ レコードをフィルター処理します。

SQLの例:

1.各地域の総人口と総面積を表示します。

SELECT 地域、SUM(人口)、SUM(面積) FROM bbc GROUP BY 地域

まず、region を使用して、返されたレコードを複数のグループに分割します。これが GROUP BY の文字通りの意味です。グループが形成された後、集計関数を使用して、各グループ (1 つ以上のレコード) 内の異なるフィールドを操作します。

2. 各地域の総人口と総面積を表示します。面積が 1,000,000 を超える地域のみが表示されます。

地域、SUM(人口)、SUM(面積) を選択
BBCより
地域別にグループ化
合計(面積)>1000000

ここでは、そのようなレコードがテーブルに存在しないため、where を使用して 1,000,000 を超える地域をフィルターすることはできません。

逆に、having節を使用すると、グループ化後にデータのグループをフィルタリングすることができます。

MySQL はフィールドの長さを決定します。

char_length(trim(home_page))<10かつchar_length(trim(home_page))>1となるaaaテーブルからhome_pageを選択します。

MySQL の where 句と having 句の違い

MySQL の where 句と having 句はどちらもレコードをフィルタリングできますが、使用方法にはいくつかの違いがあります。例を見てみましょう。

一意のレコードを見つけるには、group by 句と having 句を使用します。SQL は次のとおりです。

`edm_user081217` GROUP BY email から uid、email、count(*) を ct として選択します。

これを見ると簡単に理解できます

`edm_user081217` から uid、email、count(*) を ct として選択し、email でグループ化して ct > 1 にします。

まず、group by を使用して電子メールをグループ化し、次に、having を使用して 1 より大きい値を持つ電子メールをフィルター処理し、重複レコードのみが見つかるようにします。

「having」と「where」の違いは次のとおりです。

SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

行為の対象が異なります。 WHERE 句はテーブルとビューに適用され、HAVING 句はグループに適用されます。

WHERE はグループ化と集計の前に入力行を選択します (したがって、集計計算に含まれる行を制御します)。一方、HAVING はグループ化と集計の後にグループ化された行を選択します。したがって、WHERE 句には集計関数を含めることはできません。集計関数を使用して集計操作に入力する行を決定するのは意味がありません。 対照的に、HAVING 句には常に集計関数が含まれます。 (厳密に言えば、集計を使用せずに HAVING 句を記述することもできますが、そうするのは労力の無駄です。同じ条件を WHERE フェーズでより効率的に使用できます。)

前の例では、集約を必要としないため、WHERE で都市名の制限を適用できます。 これは、WHERE チェックに失敗した行のグループ化と集計の計算を回避するため、HAVING に制限を追加するよりも効率的です。

要約すれば:

通常は group by の後に続き、レコード グループ選択の一部として機能します。

すべてのデータを処理するには、ここで実行されます。

さらに、sum(qty)>1000などの集計関数を使用することもできます。

要約する

上記は、編集者が紹介した mysql の使い方の分析です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQLデータベースでの使用に関する簡単な説明
  • Mysql EXPLAINはファイルソートの紹介を使用しています
  • MySQL での group by と having together の使用に関する注意事項
  • MySql の having 句を使用してグループ レコードをフィルター処理する手順
  • MySQL の order by、group by、having の違いを詳細に分析します。
  • MySQL で GROUP BY を使用せずに HAVING ステートメントを直接使用する問題の調査
  • MySQL が GROUP BY なしで HAVING を直接実行すると空を返す問題の分析
  • サンプルコードを持つMySQLグループ
  • MySQL における USING と HAVING の使用法の簡単な分析

<<:  CocosCreator 入門チュートリアル: TS で初めてのゲームを作る

>>:  Docker での環境変数の使用とよくある問題の解決策

推薦する

インタビューの質問: ホーリー グレイル レイアウトとダブル ウィング レイアウトの違い

序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...

CSSを使用して円形の波効果を実現する

モバイル デバイスでは、金額を表示するために円形の波グラフィックがよく使用されます。最初は、この効果...

Dockerイメージの圧縮と最適化操作

Docker が今日非常に人気がある理由は、主にその軽量性、迅速な展開、およびリソースの利用にありま...

JavaScript関数の使い方の詳細な説明

目次1. 関数を宣言する2. 関数の呼び出し3. 関数パラメータ4. 関数の戻り値5. 議論の使用6...

シームレスなカルーセル効果を実現するネイティブ js

参考までに、ネイティブjsでカルーセル効果(シームレススクロール)を実現しています。具体的な内容は以...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

円形/扇形メニューを2分で実装する方法を教えます(基本バージョン)

序文このプロジェクトでは円形のメニューが必要です。オンラインで検索しましたが、適切なものが見つからな...

UA による Web サイトのクロールを防ぐ Nginx のクローラー対策戦略

クローラー対策ポリシー ファイルを追加しました: vim /usr/www/server/nginx...

Linux での mysql-5.7.28 インストール チュートリアル

1. 公式ウェブサイトから Linux バージョンをダウンロードします: https://dev.m...

バッチファイルを処理するLinuxの1行コマンドの詳細な説明

序文最良の方法は、あなたが思いつく最も速い方法ではないかもしれません。職場で一時的に使用するスクリプ...

ミニプログラムカスタムコンポーネントの非効率的なグローバルスタイルの解決策

目次長すぎて読めないコンポーネントスタイルの分離デモテスト優先度ページの分離構成参考文献ネイティブ ...

Dockerコンテナ内にkibanaトークナイザーをインストールする方法

ステップ: 1. 仮想マシンディレクトリに新しいdocker-compose.ymlファイルを作成し...

Linux ps および pstree コマンドの知識ポイントのまとめ

Linux の ps コマンドは Process Status の略です。 ps コマンドは、システ...

CentOS に MySQL 5.5 をインストールするための完全な手順

目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...

JS は VUE コンポーネントに基づいて都市リスト効果を実装します

この記事の例では、VUEコンポーネントに基づいて都市リストエフェクトを実装するための具体的なコードを...