Points of x coordinates are stored in table “**points**“. All entries of these points in table are integers and unique. Write a query to find **shortest** distance between two points on x-axis.

Input Table: **points**

x-axis |

-3 |

-6 |

0 |

10 |

**Output Table:**

shortest |

3 |

**Explanation:**

All possible combinations of all points in input table and differences are as follows :

SELECT p1.x AS x1, p2.x AS x2, ABS(p1.x - p2.x) AS difference FROM points p1 JOIN points p2 ON p1.x != p2.x ORDER BY p1.x , p2.x ;

x1 | x2 | difference |

-6 | -3 | 3 |

-6 | 0 | 6 |

-6 | 10 | 16 |

-3 | -6 | 3 |

-3 | 0 | 3 |

-3 | 10 | 13 |

0 | -6 | 6 |

0 | -3 | 3 |

0 | 10 | 10 |

10 | -6 | 16 |

10 | -3 | 13 |

10 | 0 | 10 |

From all differences as shown in above table, minimum difference is 3 and so, is output.

**DDLs:**

CREATE TABLE IF NOT EXISTS points ( x INT NOT NULL ); INSERT INTO points VALUES (-3); INSERT INTO points VALUES (-6); INSERT INTO points VALUES (0); INSERT INTO points VALUES (10);

**Solution:**

SELECT MIN(ABS(p1.x - p2.x)) AS shortest FROM points p1 JOIN points p2 ON p1.x != p2.x ;