[ Prev ] [ Index ] [ Next ]

SQL

Created Friday 28/05/2007

This is a document of tips and examples for interactive SQL. Any implemenation-dependent idocsyncrasies that exist have a propensity to Oracle SQL and are pointed out where possible. In this document, SQL> refers to an sqlplus command prompt, however any the queries should work with interactive sql interpretor unless stated otherwise.

1. Show duplicate rows

This query selects for duplicate rows in a table. A count of the number of rows of each non-distinct type are also produced. This query uses a combination of GROUP BY and HAVING to produce control-break style output. The query is over a single columned table called numbertable.

Table schema and content:
    SQL> create table numbertable(a int);
    SQL> insert into numbertable values ( 100 );
    SQL> insert into numbertable values ( 100 );
    SQL> insert into numbertable values ( 100 );
    SQL> insert into numbertable values ( 400 );
    SQL> insert into numbertable values ( 600 );
    SQL> insert into numbertable values ( 600 );
SQL>select * from numbertable;
         A
----------
       100
       100
       100
       400
       600
       600
6 rows selected.

The data above shows that column A has 1 distinct value (the row with value A=400). The expected output is 2 rows, with A=100 (count is 3) and with A=600 (count is 2).

SQL> select count(A),A from numbertable group by A having count(A) > 1;
  COUNT(A)          A
  -------- ----------
         3        100
         2        600

2. System date

The current system date known to the DBMS can be extracted using the DUAL psuedo table, using the psuedo column sysdate.

SQL> select sysdate from dual;
SYSDATE
---------
14/FEB/08

Stuart Moorfoot © 28 May 2007 foo@bund.com.au


Backlinks: :Home :sqlplus