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