使用状況分析を備えた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 での環境変数の使用とよくある問題の解決策

推薦する

初心者がHTMLタグを学ぶ(3)

HTML に触れる初心者は、いくつかの HTML タグを学びます。関連記事:初心者が学ぶ HTML...

効率をN倍に高めるVimクイックリファレンステーブル15個

昨年の前半から開発と娯楽のために Linux を使い始めましたが、今では Windows には戻れま...

HTML チュートリアル、HTML デフォルト スタイル

html 、アドレス、引用、本文、 dd 、 div 、 dl 、 dt 、フィールドセット、フォ...

vue-cli 設定では Vuex の完全なプロセスレコードを使用します

目次序文インストールと使用方法モジュラー管理Vuex の状態永続性要約する序文Vue 開発では、ユー...

HTML ベースタグ target=_parent の使用の紹介

<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトのタ...

CentOS7 での PostgreSQL 11 の詳細なインストールと設定のチュートリアル

1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...

Vue のプロダクション環境と開発環境を切り替えてフィルターを使用する方法

目次1. 本番環境と開発環境を切り替える最初の方法: .envファイルを設定する2番目の方法2. フ...

ナビゲーションバーコンポーネントをVueでカプセル化する

はじめに:ナビゲーション バーなどのコンポーネント ベースのアイデアを使用して機能モジュールを完全に...

TypeScript における列挙型の理解と応用シナリオ

目次1. 何ですか2. 使用数値列挙文字列列挙異種列挙自然3. 応用シナリオ要約する1. 何ですか列...

Vue で親コンポーネントから子コンポーネントにデータを渡すいくつかの方法

最近、Vue のソースコードを勉強していて、Vue で親コンポーネントと子コンポーネント間でデータを...

LinuxシステムにISOファイルをインストールする方法

Linux システムで iso ファイルをインストールするにはどうすればいいですか?インストール手順...

VMware Workstation 15 Pro インストール ガイド (初心者向け)

01. VMware Workstation Pro 15 のダウンロードダウンロード: VMwa...

jsはシンプルな英語-中国語辞書を実装します

この記事では、参考までに、簡単な英中辞典を実装するためのjsの具体的なコードを紹介します。具体的な内...

nginxで静的リソースを公開する方法

ステップ準備した静的リソースファイルを指定されたフォルダに配置しますnginx 設定ファイルを変更す...

MySQL における ${param} と #{param} の違い

${param}によって渡されるパラメータは、テーブル名やフィールド名を渡すなど、SQL文の一部と...