-1
Col A         
1 Jan
2 Jan
3 Jan
5 Jan
6 Jan

Output

Col A      Col B
1 Jan    NULL
2 Jan    1 Jan
3 Jan    2 Jan
5 Jan    3 Jan
6 Jan    5 Jan
ajain
  • 9
  • 3

3 Answers3

0

You can try with LAG() as suggested by @Akina

WITH D AS (
SELECT A FROM YOUR_TABLE 
) 
SELECT A, LAG(A, 1) OVER(ORDER BY A DESC)
FROM D

EDIT i see you are in mysql just now, you can try with this answer as well

Carlo Prato
  • 326
  • 4
  • 21
0

Use the window function LAG().

SELECT *,
  LAG(col_a) OVER (ORDER BY col_a)
FROM t;

Demo: db<>fidldle

Jim Jones
  • 18,404
  • 3
  • 35
  • 44
0

WITH D AS ( SELECT date FROM table ) SELECT date, LAG(date, 1) OVER(ORDER BY date) FROM D

ajain
  • 9
  • 3