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

MySQLは、列から0に等しく0より大きい値をカウントすることを選択しますか?


これには、CASEステートメントを使用します。まずテーブルを作成しましょう-

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

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(50);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(40);
Query OK, 1 row affected (0.15 sec)

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

mysql> select *from DemoTable;

出力

+--------+
| Number |
+--------+
| 10     |
| 0      |
| 20     |
| 50     |
| 0      |
| 0      |
| 40     |
+--------+
7 rows in set (0.00 sec)

次に、列から0に等しく0より大きいカウント値を選択する方法を見てみましょう

mysql> select sum(case when Number > 0 then 1 else 0 end )
AS TotalValueWhichIsGreaterThanZero,
   sum(case when Number = 0 then 1 else 0 end) AS TotalValueWhichIsEqualToZero
   from DemoTable where Number >=0;

出力

+----------------------------------+------------------------------+
| TotalValueWhichIsGreaterThanZero | TotalValueWhichIsEqualToZero |
+----------------------------------+------------------------------+
| 4                                | 3                            |
+----------------------------------+------------------------------+
1 row in set (0.00 sec)

  1. 1つの列から別の列に文字列値(ハイフン付き)を分離して選択するMySQLクエリ

    このために、SUBSTRING_INDEX()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1962    (    EmployeeInformation text    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1962 values('101-John-29'); Query OK

  2. 2つの列からすべての列値をカウントし、合計カウントからNULL値を除外するMySQLクエリ?

    まずテーブルを作成しましょう- mysql> create table DemoTable1975    (    StudentName varchar(20),    StudentMarks int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1975 values('John',45); Query OK, 1 r