MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

他の列値を持つグループ内の最大カウント値を持つレコードを表示するMySQLクエリ?


これには、GROUPBYHAVING句を使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable
(
   Value int
);
Query OK, 0 rows affected (0.54 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.11 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+-------+
| Value |
+-------+
|    88 |
|    88 |
|    88 |
|    99 |
|    99 |
|    99 |
|    99 |
|   100 |
|   100 |
|    88 |
|    88 |
+-------+
11 rows in set (0.00 sec)

以下は、他の列を持つグループの最大カウント値を持つレコードを表示するためのクエリです。ここでは、列に値を繰り返し、値を並べ替えています。 ORDER BY DESCの後、最初の値をフェッチし、そのカウントを新しい列「NumberOfCount」-

に表示します。
mysql> select Value,count(*) as NumberOfCount
   from DemoTable
   group by Value
   having count(*)=(select count(*) as NumberOfCount
      from DemoTable
      group by Value
      order by NumberOfCount desc
      limit 1);

これにより、次の出力が生成されます-

+-------+---------------+
| Value | NumberOfCount |
+-------+---------------+
|    88 |             5 |
+-------+---------------+
1 row in set (0.00 sec)

  1. MySQLで列の値をシャッフルしますか?

    要素をシャッフルするには、ORDER BY RAND()を使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable1557    -> (    -> SubjectId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> SubjectName varchar(20)    -> ); Query OK, 0 rows affected (0.91 sec) 挿入コマンド-を使用して

  2. 単一のMySQLクエリで列に複数の値を挿入するにはどうすればよいですか?

    列に複数の値を挿入するための構文は次のとおりです- insert into yourTableName values(yourValue1),(yourValue2),..........N; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2022    -> (    -> Department varchar(100)    -> ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、