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 のソフトリンクとハードリンクの詳細な説明
MySQL データベースは、特に JAVA プログラマーの間で広く使用されています。クラウド データ...
これらの 3 つのタグを間違った方法で使用して、タイトルを表に沿わせたり、tbody の高さを固定し...
まずは適用方法を説明します。nginxモジュールにはjtxyとjtcmdの2つがあります。 http...
MySQLはOracleのようなシーケンスを実装しているOracle は通常、主キー フィールドを処...
目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...
docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...
この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...
この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳...
div で background-color と background-image を同時に設定する...
以下のコンテンツのオペレーティング システムは次のとおりです: Centos 6.7 yum で M...
目次1. Dockerをインストールする2. GitLabをインストールする3. GitLabを初期...
序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...
span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...
SELECT ステートメントの完全な構文は次のとおりです。 (7)選択 (8) DISTINCT ...
MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...