MySQLのランク関数?
rank()関数を使用して、結果セットのパーティション内のすべての行にランクを付けることができます。
まず、テーブルを作成しましょう-
mysql> create table RankDemo mysql> ( mysql> id int mysql> ); Query OK, 0 rows affected (0.53 sec)
テーブルにレコードを挿入します。
mysql> insert into RankDemo values(1); Query OK, 1 row affected (0.19 sec) mysql> insert into RankDemo values(3); Query OK, 1 row affected (0.12 sec) mysql> insert into RankDemo values(3); Query OK, 1 row affected (0.11 sec) mysql> insert into RankDemo values(4); Query OK, 1 row affected (0.12 sec) mysql> insert into RankDemo values(5); Query OK, 1 row affected (0.17 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from RankDemo;
以下は出力です。
+------+ | id | +------+ | 1 | | 3 | | 3 | | 4 | | 5 | +------+ 5 rows in set (0.00 sec)
上で説明したように、rank()関数を適用してみましょう。
mysql> SELECT mysql> id,RANK() OVER (ORDER BY id ) Ranking mysql> from RankDemo;
以下は、ランクを表示する出力です。
+------+---------+ | id | Ranking | +------+---------+ | 1 | 1 | | 3 | 2 | | 3 | 2 | | 4 | 4 | | 5 | 5 | +------+---------+ 5 rows in set (0.04 sec)
-
簡単なMySQL関数を作成するにはどうすればよいですか?
createfunctionコマンドを使用して関数を作成できます。構文は次のとおりです- delimiter // DROP FUNCTION if exists yourFunctionName; CREATE FUNCTION yourFunctionName(Parameter1,...N) returns type BEGIN # declaring variables; # MySQL statementns END // delimiter ; まず、ここでテーブルを作成し、テーブルにいくつかのレコードを追加します。その後、簡単な関数が作成されます。以下は、テーブルを作成するため
-
MySQL SelectステートメントのIF()関数?
IF()関数は、条件に基づいて値を返します。 構文は次のとおりです- SELECT IF(yourCondition, yourMessageIfConditionBecomesTrue,yourMessageIfConditionBecomesFalse) from yourTableName; Let us first create a table: mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.60 s