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)
-
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) 挿入コマンド-を使用して、テーブルにいくつかのレ
-
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