Determining Whether Values are Unique : HAVING « Select Clause « SQL / MySQL






Determining Whether Values are Unique

       
mysql>
mysql>
mysql> CREATE TABLE mytable
    -> (
    ->  rec_id          INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ->  name            VARCHAR(20) NOT NULL,
    ->  trav_date       DATE NOT NULL,
    ->  miles           INT NOT NULL,
    ->  PRIMARY KEY (rec_id)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> INSERT INTO mytable (name,trav_date,miles)
    ->  VALUES
    ->          ('Ben','2010-11-30',152),
    ->          ('Suzi','2010-11-29',391),
    ->          ('Henry','2010-11-29',300),
    ->          ('Henry','2010-11-27',96),
    ->          ('Ben','2010-11-29',131),
    ->          ('Henry','2010-11-26',115),
    ->          ('Suzi','2010-12-02',502),
    ->          ('Henry','2010-12-01',197),
    ->          ('Ben','2010-12-02',79),
    ->          ('Henry','2010-11-30',203)
    -> ;
Query OK, 10 rows affected (0.00 sec)
Records: 10  Duplicates: 0  Warnings: 0

mysql>
mysql> SELECT trav_date, COUNT(trav_date)
    -> FROM mytable
    -> GROUP BY trav_date
    -> HAVING COUNT(trav_date) = 1;
+------------+------------------+
| trav_date  | COUNT(trav_date) |
+------------+------------------+
| 2010-11-26 |                1 |
| 2010-11-27 |                1 |
| 2010-12-01 |                1 |
+------------+------------------+
3 rows in set (0.00 sec)

mysql>
mysql> SELECT trav_date, COUNT(trav_date)
    -> FROM mytable
    -> GROUP BY trav_date
    -> HAVING COUNT(trav_date) > 1;
+------------+------------------+
| trav_date  | COUNT(trav_date) |
+------------+------------------+
| 2010-11-29 |                3 |
| 2010-11-30 |                2 |
| 2010-12-02 |                2 |
+------------+------------------+
3 rows in set (0.00 sec)

mysql>
mysql> drop table mytable;
Query OK, 0 rows affected (0.00 sec)

   
    
    
    
    
    
    
  








Related examples in the same category

1.SELECT statement includes a HAVING clause that contains one condition:
2.Include a WHERE clause-but only to select rows, not to test summary values.
3.Shows those hours of the day during which no messages were sent by using a HAVING clause that selects only sum
4.HAVING COUNT(*) > 1
5.HAVING SUM(AMOUNT) > 150
6.To find message sender/recipient pairs between whom only one message was sent