Here's a breakdown:
How it works:
1. Column Specification: You can apply `DISTINCT` to one or more columns in your `SELECT` statement.
2. Row Comparison: SQL compares the values of the specified columns in each row. If two rows have identical values for all the columns specified with `DISTINCT`, only one of them is included in the result set.
Example:
Let's say you have a table named `products` with columns `product_name` and `price`:
```sql
products:
-------------
product_name | price
-------------
Apple | 1.00
Banana | 0.50
Orange | 0.75
Apple | 1.00
Banana | 0.50
```
If you execute the query:
```sql
SELECT product_name, price FROM products;
```
You'll get all rows including the duplicates:
```
product_name | price
-------------
Apple | 1.00
Banana | 0.50
Orange | 0.75
Apple | 1.00
Banana | 0.50
```
Now, if you use `DISTINCT`:
```sql
SELECT DISTINCT product_name, price FROM products;
```
You'll get only unique rows:
```
product_name | price
-------------
Apple | 1.00
Banana | 0.50
Orange | 0.75
```
Key points:
- Order of rows: `DISTINCT` doesn't guarantee any specific order of the resulting rows. You might need to use `ORDER BY` for that.
- Performance: Using `DISTINCT` can sometimes impact query performance, especially on large tables.
- Alternatives: There are other ways to handle duplicate rows, such as using `GROUP BY` or `HAVING` clauses.
Let me know if you have any other SQL concepts you'd like explained!