1. はじめに
声明文中の順序は次のとおりです。
2. ユーザーテーブルを準備するDDLとテーブルデータは次の通りであるユーザーテーブルを準備します。 名前を設定します utf8mb4; FOREIGN_KEY_CHECKS = 0 を設定します。 -- ---------------------------- -- ユーザー用テーブル構造 -- ---------------------------- `user` が存在する場合はテーブルを削除します。 テーブル `user` を作成します ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主キー', `name` varchar(255) 文字セット utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'ユーザー名', `nation` varchar(255) 文字セット utf8 照合 utf8_general_ci NULL デフォルト NULL コメント 'Ethnicity', `age` int(11) NULL デフォルト NULL コメント '年齢', `height` double NULL デフォルト NULL コメント '高さ', `sex` smallint(6) NULL デフォルト NULL コメント '性別', BTREE を使用した主キー (`id`) ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- ユーザーの記録 -- ---------------------------- INSERT INTO `user` VALUES (1, '李子八', '汉族', 18, 180, 1); INSERT INTO `user` VALUES (2, '张三', '慧族', 20, 175, 1); `user` に VALUES (3, '李四', 'Uyghur', 45, 168, 0) を挿入します。 `user` に VALUES (4, '王五', '蒙古族', 18, 177, 1) を挿入します。 INSERT INTO `user` VALUES (5, '赵六', '汉族', 16, 184, 0); INSERT INTO `user` VALUES (6, '田七', 'Uygur', 27, 192, 1); ユーザー テーブルのデータは次のとおりです。 mysql> ユーザーから * を選択します。 +----+---------+---------+-------+-------+------+ | ID | 名前 | 国籍 | 年齢 | 身長 | 性別 | +----+---------+---------+-------+-------+------+ | 1 | 李子巴 | 漢民族 | 18 | 180 | 1 | | 2 | 張三 | 回族 | 20 | 175 | 1 | | 3 | 李斯 | ウイグル人 | 45 | 168 | 0 | | 4 | 王武 | モンゴル語 | 18 | 177 | 1 | | 5 | 趙柳 | 漢民族 | 16 | 184 | 0 | | 6 | 天啓 | ウイグル語 | 27 | 192 | 1 | +----+---------+---------+-------+-------+------+ セット内の 6 行 (0.00 秒) 2.1 グループ化ルール
2.2 グループの使用必要: さまざまな国籍のユーザーの数を数える 声明: mysql> ユーザーグループから nation を選択し、count(*) を nation で選択します。 +----------+-----------+ | 国 | カウント(*) | +----------+-----------+ | 漢民族| 2 | | 回族| 1 | | ウイグル語 | 2 | | モンゴル語| 1 | +----------+-----------+ セット内の 4 行 (0.00 秒) GROUP BY は mysql> ユーザーから nation_num として count(*) を選択し、 sex = 0 で nation をグループ化します。 +----------+-------------+ | 国 | 国番号 | +----------+-------------+ | ウイグル語 | 1 | | 漢民族| 1 | +----------+-------------+ セット内の 2 行 (0.00 秒) 2.3 havingの使用group mysql> ユーザーグループから nation, count(*) as nation_num を選択し、nation = '汉族' を選択します。 エラー 1064 (42000): SQL 構文にエラーがあります。1 行目の 'where nation = '汉族'' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 この時点では、上記の where 句を having 句に置き換えるだけで済みます。having vmysql> ユーザーグループから nation を選択し、count(*) を nation_num として取得します。nation は '汉族' です。 +--------+-------------+ | 国 | 国番号 | +--------+-------------+ | 漢民族| 2 | +--------+-------------+ セット内の 1 行 (0.00 秒) 2.4 order by と limitグループ化されたデータを並べ替える必要がある場合は、 mysql> ユーザーグループから nation を選択し、 count(*) を nation_num として取得します。 nation != '汉族' を order by nation_num desc; +----------+-------------+ | 国 | 国番号 | +----------+-------------+ | ウイグル語 | 2 | | 回族| 1 | | モンゴル語| 1 | +----------+-------------+ セット内の 3 行 (0.00 秒) 出力結果に返される行数を指定する必要がある場合は、 mysql> select nation, count(*) as nation_num from user group by nation having nation != '汉族' order by nation_num desc limit 2; +----------+-------------+ | 国 | 国番号 | +----------+-------------+ | ウイグル語 | 2 | | 回族| 1 | +----------+-------------+ セット内の 2 行 (0.00 秒) 2.5 ロールアップ付きgroup by 句では、 たとえば、max(): mysql> ユーザーグループから nation, max(height) を nation_num として選択し、rollup で nation をロールアップします。 +----------+-------------+ | 国 | 国番号 | +----------+-------------+ | 回族| 175 | | 漢民族| 184 | | ウイグル語 | 192 | | モンゴル語| 177 | | NULL | 192 | +----------+-------------+ セット内の行数は 5 です (0.00 秒) たとえば、avg(): mysql> ユーザーグループから、nation、avg(height) を nation_num として選択し、rollup で国を選択します。 +----------+--------------------+ | 国 | 国番号 | +----------+--------------------+ | 回族| 175 | | 漢民族| 182 | | ウイグル語 | 180 | | モンゴル語 | 177 | | NULL | 179.33333333333334 | +----------+--------------------+ セット内の行数は 5 です (0.00 秒) たとえば、count(): mysql> ユーザーグループから nation, count(*) as nation_num を選択し、rollup で nation を指定します。 +----------+-------------+ | 国 | 国番号 | +----------+-------------+ | 回族| 1 | | 漢民族| 2 | | ウイグル語 | 2 | | モンゴル語| 1 | | NULL | 6 | +----------+-------------+ セット内の行数は 5 です (0.00 秒) これで、MySQL の group by に関するこの記事は終了です。MySQL の group by の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Linux のソフトリンクとハードリンクの詳細な説明
使用例コードをコピーコードは次のとおりです。 <!DOCTYPE html> <!...
目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...
Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...
日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...
目次1. 小道具親 >>> 子 (Props)子 >>> 親 (...
序文あるプロジェクトの実行可能ファイルをインストールすると、MySQL 自体をインストールできるよう...
序文Linux 運用保守エンジニアとして、日々の業務の中で Linux サーバーの CPU 負荷が ...
1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...
序文WeChat ミニプログラムは新しいオープン機能を提供します!ついにミニプログラムにHTMLペー...
01. コマンドの概要gcc コマンドは、GNU がリリースした C/C++ ベースのコンパイラを使...
div の背景を透明にする一般的な方法は 2 つあります。 1. 不透明度属性を 0 ~ 1 の値に...
Baiduで検索しました。 。 chcp コマンドを使用して、cmd の文字エンコーディングを 65...
1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...
今日、Baidu でページを検索したところ、ページが削除されていたため、当然 Baidu スナップシ...
前面に書かれた過去および現在のプロジェクトで最も一般的に使用されているリレーショナル データベースは...