SQL usually treats a table not as a set but rather as a multiset; duplicate tuples can appear more than once in a table, and in the result of a query.
SQL does not automatically eliminate duplicate tuples in the results of queries, for the following reasons:
Duplicate elimination is an expensive operation. One way to implement it is to sort the tuples first and then eliminate duplicates.
The user may want to see duplicate tuples in the result of a query.
When an aggregate function is applied to tuples, in most cases we do not want to eliminate duplicates