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

MySQLの単一行の値を合計しますか?


以下の構文を使用して、単一行の値を合計できます-

ケース1 −列にNULL値がない場合の構文は次のとおりです-

SELECT yourColumnName1+yourColumnName2+yourColumnName3+.......+N as anyVariableName FROM yourTableName;

ケース2 −列の値がNULLの場合は、この構文を使用します−

SELECT IFNULL(yourColumnName1,0)+ IFNULL(yourColumnName2,0)+ IFNULL(yourColumnName3,0)+.............+N
AS anyVariableName FROM yourTableName;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table SumValueOfSingleRow
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstValue int,
   -> SecondValue int,
   -> ThirdValue int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.70 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,0,1);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,NULL,0);
Query OK, 1 row affected (0.19 sec)

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(NULL,NULL,NULL);
Query OK, 1 row affected (0.09 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from SumValueOfSingleRow;

以下は出力です-

+----+------------+-------------+------------+
| Id | FirstValue | SecondValue | ThirdValue |
+----+------------+-------------+------------+
|  1 |          1 |           0 |          1 |
|  2 |          1 |        NULL |          0 |
|  3 |       NULL |        NULL |       NULL |
+----+------------+-------------+------------+
3 rows in set (0.00 sec)

サンプル出力を見てください。 CASE 1を使用すると、適切な結果が得られません。

上で説明したCASE1を確認してみましょう。クエリは次のとおりです-

mysql> select FirstValue+SecondValue+ThirdValue as SingleRowSum from SumValueOfSingleRow;

以下は出力です-

+--------------+
| SingleRowSum |
+--------------+
|            2 |
|         NULL |
|         NULL |
+--------------+
3 rows in set (0.06 sec)

サンプル出力を見てください。上記のクエリはNULLの場合を処理しません。これで、CASE2を使用して適切な結果を得ることができます。

クエリは次のとおりです-

mysql> select ifnull(FirstValue,0)+ ifnull(SecondValue,0)+ ifnull(ThirdValue,0) as SingleRowSum from SumValueOfSingleRow;

以下は、単一行の値の合計を表示する出力です-

+--------------+
| SingleRowSum |
+--------------+
|            2 |
|            1 |
|            0 |
+--------------+
3 rows in set (0.06 sec)

  1. MySQL GROUP BYがNULL値を単一の行に折りたたむのを防ぐにはどうすればよいですか?

    これで、ORDER BY句と一緒にIFNULL()を使用できます。まず、テーブルテーブルを作成しましょう- mysql> create table DemoTable1511    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> FirstName varchar(20)    -> ); Query OK, 0 rows affected (1.97 sec) 挿入コマンド-を使用して、テーブルにいくつかのレ

  2. MySQLでコンマで区切られた単一の行にすべての列の値を表示しますか?

    これには、GROUP_CONCAT()およびCONCAT()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1807      (      Id int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1807 values(101); Query OK, 1 row a