{"id":11898,"date":"2024-03-14T14:55:41","date_gmt":"2024-03-14T14:55:41","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/"},"modified":"2025-08-04T18:36:40","modified_gmt":"2025-08-04T18:36:40","slug":"how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/","title":{"rendered":"SQL LAG Function: Calculate Row Differences"},"content":{"rendered":"<p>You can use the LAG function to retrieve the value from the previous row and then calculate the difference with the current row. Here is an example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">SELECT<\/span> \r\n    col1,\r\n    col2,\r\n    col2 <span class=\"hljs-operator\">-<\/span> <span class=\"hljs-built_in\">LAG<\/span>(col2) <span class=\"hljs-keyword\">OVER<\/span>(<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> col1) <span class=\"hljs-keyword\">AS<\/span> diff\r\n<span class=\"hljs-keyword\">FROM<\/span> \r\n    your_table;\r\n<\/code><\/pre>\n<p>In this example, col1 and col2 are the column names in your table. LAG(col2) OVER(ORDER BY col1) means to retrieve the value of col2 from the previous row, and then calculate the difference between neighboring rows using col2 &#8211; LAG(col2) OVER(ORDER BY col1) and name it as the diff column.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can use the LAG function to retrieve the value from the previous row and then calculate the difference with the current row. Here is an example: SELECT col1, col2, col2 &#8211; LAG(col2) OVER(ORDER BY col1) AS diff FROM your_table; In this example, col1 and col2 are the column names in your table. LAG(col2) OVER(ORDER [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[337,335,125,569,5946],"class_list":["post-11898","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-data-analysis","tag-lag-function","tag-sql","tag-sql-tutorial","tag-window-functions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL LAG Function: Calculate Row Differences - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to use SQL LAG function to calculate differences between adjacent rows with practical examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL LAG Function: Calculate Row Differences\" \/>\n<meta property=\"og:description\" content=\"Learn how to use SQL LAG function to calculate differences between adjacent rows with practical examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T14:55:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T18:36:40+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emily Johnson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"SQL LAG Function: Calculate Row Differences\",\"datePublished\":\"2024-03-14T14:55:41+00:00\",\"dateModified\":\"2025-08-04T18:36:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\"},\"wordCount\":87,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Data Analysis\",\"LAG Function\",\"SQL\",\"sql tutorial\",\"Window Functions\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\",\"name\":\"SQL LAG Function: Calculate Row Differences - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T14:55:41+00:00\",\"dateModified\":\"2025-08-04T18:36:40+00:00\",\"description\":\"Learn how to use SQL LAG function to calculate differences between adjacent rows with practical examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL LAG Function: Calculate Row Differences\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL LAG Function: Calculate Row Differences - Blog - Silicon Cloud","description":"Learn how to use SQL LAG function to calculate differences between adjacent rows with practical examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/","og_locale":"en_US","og_type":"article","og_title":"SQL LAG Function: Calculate Row Differences","og_description":"Learn how to use SQL LAG function to calculate differences between adjacent rows with practical examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T14:55:41+00:00","article_modified_time":"2025-08-04T18:36:40+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"SQL LAG Function: Calculate Row Differences","datePublished":"2024-03-14T14:55:41+00:00","dateModified":"2025-08-04T18:36:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/"},"wordCount":87,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Data Analysis","LAG Function","SQL","sql tutorial","Window Functions"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/","name":"SQL LAG Function: Calculate Row Differences - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T14:55:41+00:00","dateModified":"2025-08-04T18:36:40+00:00","description":"Learn how to use SQL LAG function to calculate differences between adjacent rows with practical examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-lag-to-calculate-the-difference-between-two-adjacent-rows-in-sql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL LAG Function: Calculate Row Differences"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=11898"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11898\/revisions"}],"predecessor-version":[{"id":155703,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11898\/revisions\/155703"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=11898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=11898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=11898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}