| Webtraffic Exchange | SQL
There was an error with one of our applications, and I needed to find table rows with duplicate values. The table column was not defined to have a unique index, but we weren't anticipating duplicate values. I needed an easier way to identify duplicate values in a table with a simple SQL statement.
Consider the following "employees" table:
| id | Name | Alias | Age |
|---|---|---|---|
| 1 | John Doe | John | 30 |
| 2 | John Smith | John | 40 |
| 3 | Joe Schmo | Joe | 38 |
| 4 | Charlie Bohne | Charlie | 55 |
Assuming that we have an "employees" table with the above values, and looking to find records with duplicate "Alias". How do we retrieve them? With the following SQL statement with HAVING clause, we can easily accomplish that.
SELECT alias, count(alias) as count FROM employee GROUP BY alias HAVING (count(alias) > 1) ORDER BY alias
The above SQL statement will retrieve:
| Alias | Count |
|---|---|
| John | 2 |
*NOTE: The HAVING clause allows SQL to use aggregate functions with a condition whereas WHERE clause does not offer that functionality. For example, the HAVING clause can be used to retrieve SUM(x) > 100 or COUNT(y) > 1.
0 Comments
Comments are moderated to keep the discussion useful and respectful. Spam, automated submissions, and low-value promotional comments are removed.
Leave a Comment