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 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
(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');
(
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');