Vypísanie duplicitných riadkov 2
SQL -> Ukážkové skripty v SQL -> Vypísanie duplicitných riadkov 2
Máme takúto tabuľku:
PRIJMENI
| JMENO
| ADRESA
|
Petr
| Novák
| Vinohradská 1
|
Jan
| Novák
| Sokolská 10
|
Jiří
| Novák
| Perunova 11
|
Petr
| Novák
| Ječná 13
|
Jan
| Kovář
| Novodvorská 1
|
Petr
| Kovář
| Lesní 2
|
Jan
| Kovář
| Cílkova 3
|
Chceme vypísať len duplicitné záznamy s menom a priezviskom, čiže toto:
PRIJMENI
| JMENO
| ADRESA
|
Petr
| Novák
| Vinohradská 1
|
Petr
| Novák
| Ječná 13
|
Jan
| Kovář
| Novodvorská 1
|
Jan
| Kovář
| Cílkova 3
|
SELECT pre výber v Oracle
SELECT a.jmeno, a.prijmeni, a.adresa
FROM tabulka a JOIN
(SELECT Jmeno, Prijmeni
FROM tabulka b
GROUP BY b.Jmeno, b.Prijmeni
HAVING COUNT
(*
)>1
) b
on a.Jmeno=b.Jmeno AND a.Prijmeni=b.Prijmeni
SELECT pre výber v iných databázach
SELECT a.jmeno, a.prijmeni, a.adresa
FROM tabulka AS a JOIN
(SELECT Jmeno, Prijmeni
FROM tabulka AS b
GROUP BY b.Jmeno, b.Prijmeni
HAVING COUNT
(*
)>1
)
ON a.Jmeno=b.Jmeno AND a.Prijmeni=b.Prijmeni
Celú tabuľku si vytvoríme pomocou tohoto skriptu
CREATE TABLE tabulka
(
Prijmeni VARCHAR2 (100) NOT NULL,
Jmeno VARCHAR2 (40),
Adresa VARCHAR2 (40)
)
/
INSERT INTO tabulka VALUES ('Petr', 'Novák', 'Vinohradská 1');
INSERT INTO tabulka VALUES ('Jan', 'Novák', 'Sokolská 10');
INSERT INTO tabulka VALUES ('Jiří', 'Novák', 'Perunova 11');
INSERT INTO tabulka VALUES ('Petr', 'Novák', 'Ječná 13');
INSERT INTO tabulka VALUES ('Jan', 'Kovář', 'Novodvorská 1');
INSERT INTO tabulka VALUES ('Petr', 'Kovář', 'Lesní 2');
INSERT INTO tabulka VALUES ('Jan', 'Kovář', 'Cílkova 3');