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

推薦する

JS で配列の重複排除を実装する 7 つの方法

目次1. Set()+Array.from() を使用する2. 2層ループ+アレイ接合方式の使用3....

MySQL のデバッグと最適化に関する 101 のヒントを共有する

MySQL は強力なオープンソース データベースです。データベース駆動型アプリケーションの数が増える...

Nginx ドメイン転送の使用シナリオ コード例

シナリオ 1: サーバーの制限により、外部に開かれているポートは 1 つだけですが、別の外部ネットワ...

JavaScript DOMContentLoaded イベントのケーススタディ

DOMContentLoaded イベント文字通り、DOM がロードされた後に実行されます。 win...

インタラクションデザインと心理学の驚くべきつながり18選

デザイナーは心理学を理解する必要があるデザイナーが知るべき心理学という本は非常に興味深いです。まず、...

Vue Element-ui はツリーコントロールノードを実装し、アイコンを追加します。詳細な説明

目次1. レンダリング2. データをバインドし、ツリーテーブルにラベルを追加する3. すべてのコード...

一般的なイベントを処理するための JavaScript の使用に関する詳細な説明

目次1. フォームイベント2. マウスイベント3. キーボードイベント4. 共通イベントメソッド(ウ...

組み込み Linux で QT アプリケーションを再起動する簡単な方法 (QT4.8 qws ベース)

アプリケーション ソフトウェアには通常、次のようなビジネス要件があります。新しいバージョンの APP...

IE、Firefox、Chromeブラウザではスペースの表示が異なります

&nbsp;&nbsp;IE、Firefox、Chrome ブラウザでの表示効果は、...

モバイルデバイスにおける適応レイアウトの問題に関する簡単な説明 (レスポンシブ、rem/em、Js ダイナミクス)

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイ...

CentOS での samba フォルダ共有サーバー構成の詳細な説明

1. はじめに最近、CentOS での開発には多くの不便があることがわかりました。Windows/M...

Dockerの基本的な手順

目次基本的な指示1. 現在のマシンのコンテナステータスを確認する2. イメージをダウンロードまたは取...

Linux における mv コマンドの高度な使用例

序文mv コマンドは、move の略語で、ファイルを移動したり、ファイル名を変更したり (ファイルの...

CentOS 7 に Percona Server+MySQL をインストールする

1. 環境の説明(1) CentOS-7-x86_64、カーネルバージョン uname -r は、 ...

Flexレイアウトを使用してヘッドの固定コンテンツ領域のスクロールを実現する方法

ページ ヘッダーの固定レイアウトは、以前は position:fixed を使用して実装されていまし...