Show only one label for multiple points with same value in QGIS

I assume that you have multiple features with the same ID and not real multipoint. If needed there is also a solution with real multipoint, let me know.

You can add an integer field to your shapefile that you populate with 1 if you want to display the label for this features and 0 for others.

Then in the renderer of the label use data-defined property for show or not labels.

enter image description here

EDIT :

Answer by @Kazuhito gave me an idea to go further.

You can also add two fields (x_lbl and y_lbl for example) and use them to get a total control on the placement of your label by using data-defined properties for label placement. Fill these fields with the coordinates where you need your label, you can then modify easily the place from the QGIS Interface. Look for this buttons:

enter image description here


If a virtual layer is an option,

SELECT id, st_pointonsurface(st_union(geometry))
FROM your_layer
GROUP BY id

will place a point at around the center of each group.

I like the answer by @YoLecomte , which gives us more control to select where to put the label.