I am new to qgis. When I am using rule based styling, duplicates for some reason show all the matching symbols and not only the first match rule's symbol. How do I make show only one symbol even if it matches more then one rule?
As far as I know you cannot.
To achieve your result (not having overlaps of different symbols) you have to refine your rules to exclude this possibility. Such as:
"TOPO"=1 AND "COVER"<> 1
For your base symbol (Other), you should use the rule:
Indeed, the way it currently works is useful if you want to superpose information or create more complicated symbolisation and legends.
And, just in case it helps, you can create a hierarchy in the rules, by dragging one (sub) rule over another. For example:
The "Diameter" > 250 rule here will only apply to the features in clay (but the symbols will superpose).