単一のMySQLクエリ内のブールフィールド値をカウントしますか?
単一のクエリ内のブールフィールド値をカウントするには、CASEステートメントを使用できます。この例のデモテーブルを作成しましょう-
mysql> create table countBooleanFieldDemo -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(20), -> isPassed tinyint(1) -> ); Query OK, 0 rows affected (0.63 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。
クエリは次のとおりです-
mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Larry',0); Query OK, 1 row affected (0.12 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Mike',1); Query OK, 1 row affected (0.17 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Sam',0); Query OK, 1 row affected (0.21 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Carol',1); Query OK, 1 row affected (0.15 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Bob',1); Query OK, 1 row affected (0.16 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('David',1); Query OK, 1 row affected (0.13 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Ramit',0); Query OK, 1 row affected (0.28 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Chris',1); Query OK, 1 row affected (0.20 sec) mysql> insert into countBooleanFieldDemo(StudentFirstName,isPassed) values('Robert',1); Query OK, 1 row affected (0.16 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。
クエリは次のとおりです-
mysql> select *from countBooleanFieldDemo;
これが出力です-
+-----------+------------------+----------+ | StudentId | StudentFirstName | isPassed | +-----------+------------------+----------+ | 1 | Larry | 0 | | 2 | Mike | 1 | | 3 | Sam | 0 | | 4 | Carol | 1 | | 5 | Bob | 1 | | 6 | David | 1 | | 7 | Ramit | 0 | | 8 | Chris | 1 | | 9 | Robert | 1 | +-----------+------------------+----------+ 9 rows in set (0.00 sec)
これは、単一のクエリ内のブールフィールド値をカウントするためのクエリです-
mysql> select sum(isPassed= 1) as `True`, sum(isPassed = 0) as `False`, -> ( -> case when sum(isPassed = 1) > 0 then sum(isPassed = 0) / sum(isPassed = 1) -> end -> )As TotalPercentage -> from countBooleanFieldDemo;
以下は出力です-
+------+-------+-----------------+ | True | False | TotalPercentage | +------+-------+-----------------+ | 6 | 3 | 0.5000 | +------+-------+-----------------+ 1 row in set (0.00 sec)
-
フィールド値からコンマをカウントするMySQLクエリ?
以下は構文です- select length(yourColumnName) - length(replace(yourColumnName, ',', '')) as anyAliasName from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1510 -> ( -> Value varchar(50) -> ); Query OK, 0 rows affected (6.75
-
特定の列値の単一の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