You can use Vector > Analysis Tools > Distance Matrix, and a join to have an output layer that has all the required attributes.
I will use the Towns layer to exemplify. This will help in showing the distances and is quite small for faster processing.
1. Create a distance matrix using your layer as both destination and target.
Don’t forget to tick “Use only the nearest (k) target points” and set it to 1.
Distance Matrix Window
2. Open the CSV with add delimited text layer
Choose “Comma” as a delimiter, and set the geometry definition as no Geometry
4. Use Field calculator to populate a field with the desired values
Because of the join, we now have access to the distance table values from within the towns table of attributes, therefore it quite fairly easy to create a new field and populate it with our desired values.
Using Field Calculator
5. Grouping the generated town data.
We can now group the towns depending on the distances between them. To do that, we write a function to classify the data.
That was a brief task that is very useful when conducting GIS analysis.