個別の値を取得し、MySQLでカウントします
個別の値を取得してカウントするには、GROUPBY句を使用できます。
構文は次のとおりです
select yourColumnName,count(*) as anyAliasName from yourTableName group by yourColumnName;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです
mysql> create table GroupByAndCountDemo -> ( -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(100) -> ); Query OK, 0 rows affected (0.64 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-
mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.18 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Carol'); Query OK, 1 row affected (0.14 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Sam'); Query OK, 1 row affected (0.15 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Sam'); Query OK, 1 row affected (0.16 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.51 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.15 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.13 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Sam'); Query OK, 1 row affected (0.08 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Sam'); Query OK, 1 row affected (0.47 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Sam'); Query OK, 1 row affected (0.09 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.13 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.18 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('John'); Query OK, 1 row affected (0.10 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('David'); Query OK, 1 row affected (0.12 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Maxwell'); Query OK, 1 row affected (0.17 sec) mysql> insert into GroupByAndCountDemo(ClientName) values('Maxwell'); Query OK, 1 row affected (0.15 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from GroupByAndCountDemo;
出力は次のとおりです
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 1 | John | | 2 | Carol | | 3 | Sam | | 4 | Sam | | 5 | John | | 6 | John | | 7 | John | | 8 | Sam | | 9 | Sam | | 10 | Sam | | 11 | John | | 12 | John | | 13 | John | | 14 | David | | 15 | Maxwell | | 16 | Maxwell | +----------+------------+ 16 rows in set (0.00 sec)
次に、個別の値を取得し、次のクエリを使用してそれらをカウントしましょう
mysql> select ClientName,count(*) as TotalCount from GroupByAndCountDemo group by ClientName;
以下は出力です
+------------+------------+ | ClientName | TotalCount | +------------+------------+ | John | 7 | | Carol | 1 | | Sam | 5 | | David | 1 | | Maxwell | 2 | +------------+------------+ 5 rows in set (0.00 sec)
-
個別の値の出現をカウントし、その結果を新しい列に表示するMySQLクエリ?
まずテーブルを作成しましょう- mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.57 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(80); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(90); Query OK, 1 row affected (0
-
特定の列値の単一のMySQLクエリで複数のカウントを取得する
このために、特定の列のパラメーター値とともに集計関数sum()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94