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

MySQLで列を遅らせるにはどうすればよいですか?


MySQLで列を遅らせるには、まず、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table LagDemo
   -> (
   -> UserId int,
   -> UserValue int
   -> );
Query OK, 0 rows affected (1.74 sec)

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

mysql> insert into LagDemo values(12,158);
Query OK, 1 row affected (0.61 sec)
mysql> insert into LagDemo values(18,756);
Query OK, 1 row affected (0.21 sec)
mysql> insert into LagDemo values(15,346);
Query OK, 1 row affected (0.25 sec)
mysql> insert into LagDemo values(87,646);
Query OK, 1 row affected (0.14 sec)
mysql> insert into LagDemo values(27,334);
Query OK, 1 row affected (0.11 sec)
mysql> insert into LagDemo values(90,968);
Query OK, 1 row affected (0.08 sec)
mysql> insert into LagDemo values(84,378);
Query OK, 1 row affected (0.10 sec)
mysql> insert into LagDemo values(85,546);
Query OK, 1 row affected (0.56 sec)

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

mysql> select *from LagDemo;

出力

+--------+-----------+
| UserId | UserValue |
+--------+-----------+
|     12 |       158 |
|     18 |       756 |
|     15 |       346 |
|     87 |       646 |
|     27 |       334 |
|     90 |       968 |
|     84 |       378 |
|     85 |       546 |
+--------+-----------+
8 rows in set (0.00 sec)

これがMySQLの列を遅らせるためのクエリです-

mysql> SET @f : = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> SET @s : = 2;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT l1.UserId, l1.UserValue , l1.UserValue / l2.UserValue AS 'LAG'
-> FROM
-> (SELECT if(@f, @f: = @f+1, @f:=1) as RowNumber, UserId, UserValue FROM LagDemo) AS l1
-> LEFT JOIN
-> (SELECT if(@s, @s: = @s+1, @s: = 1) as RowNumber, UserId, UserValue FROM LagDemo) AS l2
-> ON l1.RowNumber = l2.RowNumber;

出力

+--------+-----------+--------+
| UserId | UserValue |    LAG |
+--------+-----------+--------+
|     12 |       158 |   NULL |
|     18 |       756 |   NULL |
|     15 |       346 | 2.1899 |
|     87 |       646 | 0.8545 |
|     27 |       334 | 0.9653 |
|     90 |       968 | 1.4985 |
|     84 |       378 | 1.1317 |
|     85 |       546 | 0.5640 |
+--------+-----------+--------+
8 rows in set (0.00 sec)

  1. MySQLで列のペアを一意にする方法は?

    列のペアを一意にするには、ALTERTABLEコマンドでUNIQUEを使用します。以下は構文です- alter table yourTableName add unique yourUniqueName(yourColumnName1,yourColumnName2,...N); まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentFirstName varchar(100),

  2. MySQLで複数の列を検索する方法は?

    MySQLで複数の列を検索する方法を理解しましょう- 注: 「DBNAME」という名前のデータベースと「tableName」という名前のテーブルを作成したと仮定します。 ユーザーが検索に返すものに応じて、「AND」および「OR」演算子を使用できます。 例を使ってそれを見てみましょう- 例 SELECT colName FROM tableName WHERE my_col LIKE %$param1% AND another_col LIKE %$param2%; 上記の例では、「AND」演算子が使用されています。 これは、結果が返されるためには、両方の句がレコードと一致する必要があ