I have a point shapefile which has for a few occasions multiple points with the same ID. Doesn't look nice with the normal label-display. Is it possible in QGIS to only display one label then? I couldn't find a check/uncheck option... Perhaps it would be possible to retrieve labels via a SQL-query, with a »GROUP BY id«?
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.
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:
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.