Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में कॉलम के लिए LAG फंक्शन का उपयोग

MySQL 8.0 से पहले LAG फंक्शन उपलब्ध नहीं था, लेकिन उपयोगकर्ता-परिभाषित वेरिएबल और सेल्फ-जॉइन का उपयोग करके इसे लागू किया जा सकता है।

एक टेबल बनाते हैं:

CREATE TABLE LagDemo (
    UserId INT,
    UserValue INT
);

रिकॉर्ड डालें:

INSERT INTO LagDemo VALUES (12, 158);
INSERT INTO LagDemo VALUES (18, 756);
INSERT INTO LagDemo VALUES (15, 346);
INSERT INTO LagDemo VALUES (87, 646);
INSERT INTO LagDemo VALUES (27, 334);
INSERT INTO LagDemo VALUES (90, 968);
INSERT INTO LagDemo VALUES (84, 378);
INSERT INTO LagDemo VALUES (85, 546);

सभी रिकॉर्ड देखें:

SELECT * FROM LagDemo;

आउटपुट

+--------+-----------+
| UserId | UserValue |
+--------+-----------+
| 12     | 158       |
| 18     | 756       |
| 15     | 346       |
| 87     | 646       |
| 27     | 334       |
| 90     | 968       |
| 84     | 378       |
| 85     | 546       |
+--------+-----------+

LAG की गणना के लिए (वर्तमान पंक्ति का मान / पिछली पंक्ति का मान):

SET @f := 0;
SET @s := 2;
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 |
+--------+-----------+--------+

नोट: MySQL 8.0+ में आप सीधे LAG() विंडो फंक्शन का उपयोग कर सकते हैं जो बहुत सरल है:

SELECT UserId, UserValue, 
       UserValue / LAG(UserValue) OVER (ORDER BY UserId) AS LAG_Ratio
FROM LagDemo;
  1. - MySQL में अस्थायी टेबल के कॉलम कैसे सूचीबद्ध करें?

    MySQL में अस्थायी टेबल के कॉलम देखना MySQL में अस्थायी टेबल के कॉलम सूचीबद्ध करने के लिए, पहले एक अस्थायी टेबल बनाते हैं। उदाहरण: अस्थायी टेबल बनाना यहाँ एक उदाहरण है जहाँ हमने छात्र के विवरण वाली एक अस्थायी टेबल बनाई है: mysql> CREATE TEMPORARY TABLE DemoTable745 ( StudentId int NOT NULL AUT

  1. - MySQL में दो कॉलम के जोड़े को यूनिक बनाना

    MySQL में ALTER TABLE और UNIQUE कंस्ट्रेंट के साथ कॉलम जोड़े को अद्वितीय बनाना दो या अधिक कॉलम के संयोजन को अद्वितीय बनाने के लिए UNIQUE कंस्ट्रेंट का उपयोग किया जाता है। यह सुनिश्चित करता है कि उन कॉलम का संयोजन तालिका में दोहराया न जाए। सिंटैक्स ALTER TABLE yourTableName ADD UNIQUE yourUniqueNam

  1. - MySQL और PostgreSQL में अंतर

    MySQL और PostgreSQL के बीच प्रमुख अंतर: MySQL संबंधात्मक डेटाबेस प्रबंधन प्रणाली (RDBMS)। Oracle Corporation द्वारा विकसित। प्लेटफ़ॉर्म: Windows, macOS, Linux, BSD, UNIX, z/OS, Symbian, AmigaOS। एक्सटेंसिबल **नहीं**। GUI: phpMyAdmin। बैकअप: mysqldump, XtraBackup। टेम्पररी टेबल समर्थन। मटेरियलाइज़्