SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
09. 05. 2006. | #1 |
Boban Karišik
Expert
|
duplikati
Znam da je DISTINCT da ako ima duplikata, iste pokaze samo jednom, a pokaze i sve ostale. E sada, moje pitanje je da li mogu nekako da se provere samo duplikati, znaci npr SELECT DUPLICATE('polje1') FROM 'tabela1'; i da mi on pokaze samo duplikate iz polje1.
Nadam se da me neko shvatio... Hvala |
09. 05. 2006. | #2 |
Goran Pilipović
Sir Write-a-Lot
|
Mozes na primer ovako:
SELECT Count(*) AS Cnt from tabela1 GROUP BY polje1 HAVING Cnt > 1 To ti prikazuje samo broj, ako hoces i koje je to polje onda samo dodaj polje1: SELECT polje1, Count(*) AS Cnt from tabela1 GROUP BY polje1 HAVING Cnt > 1 Ako hoces da vidis recimo kojih ima tacno 4, onda samo zameni Cnt > 1 u Cnt = 4 ako neko zna bolje - shoot Jel' sam shvatio?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
09. 05. 2006. | #3 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Nesto ovako ?
Kôd:
select name,count(name) as dupecount from test group by name having dupecount >1 [edit]hehe, blues i ja postovasmo isti odgovor prakticno istovremeno [/edit] |
09. 05. 2006. | #4 |
Boban Karišik
Expert
|
ovo je super, hvala vam...
|
09. 05. 2006. | #5 | |
Ivan Dilber
Sir Write-a-Lot
|
Citat:
EDIT: to bi moglo doduse lako da se resi ovako: Kôd:
SELECT id, polje1 FROM tabela1 WHERE polje1 IN (SELECT polje1 FROM tabela1 GROUP BY polje1 HAVING count(*) > 1)
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 10. 05. 2006. u 10:42. |
|
10. 05. 2006. | #6 |
Goran Pilipović
Sir Write-a-Lot
|
ne znam zašto ne bi mogao? Zašto misliš da neće raditi?
BTW, tvoj query sigurno ne radi, nisi ni definisao alias Cnt Ti možeš komotono da radiš query: SELECT *, count(*) AS Cnt FROM ... GROUP BY... Jedina je razlika što kada koristiš SELECT COUNT(*) FROM ne moraš da grupišeš polja, dok kada imaš i neko drugo polje tipa SELECT ime1, ime2, COUNT(*) ... moraš da dodaš GROUP BY something.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
10. 05. 2006. | #7 | |
Ivan Dilber
Sir Write-a-Lot
|
Citat:
Kôd:
mysql> select * from ime; +----+--------+ | id | ime | +----+--------+ | 1 | mika | | 2 | zika | | 3 | pera | | 4 | joca | | 5 | tra | | 6 | DUMMY | | 7 | DUMMY | | 8 | DUMMY | | 9 | DUMMY | | 10 | smarty | | 11 | smarty | +----+--------+ 11 rows in set (0.02 sec) Kôd:
mysql> select *, count(*) as cnt from ime group by ime having cnt>1; +----+--------+-----+ | id | ime | cnt | +----+--------+-----+ | 6 | DUMMY | 4 | | 10 | smarty | 2 | +----+--------+-----+ 2 rows in set (0.03 sec) Moj predlog je sledeci (ovog puta bez typo-a ): Kôd:
mysql> SELECT * FROM ime WHERE ime IN (SELECT ime FROM ime GROUP BY ime HAVING count(*) > 1); +----+--------+ | id | ime | +----+--------+ | 6 | DUMMY | | 7 | DUMMY | | 8 | DUMMY | | 9 | DUMMY | | 10 | smarty | | 11 | smarty | +----+--------+ 6 rows in set (0.00 sec) ps. Ovo gore ne moraju da budu id-jevi, recimo da postoji kolona prezime, pa te zanimaju prezimena svih ljudi sa istim imenom, ili tako nesto.. id-jevi su mi prvi pali na pamet jer ove stvari obicno sluze da se pobrisu duplikati..
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 10. 05. 2006. u 10:48. |
|
10. 05. 2006. | #8 |
Goran Pilipović
Sir Write-a-Lot
|
Da, to je tačno kada tražiš svaki id posebno, mislim da je on samo hteo da pokaže koji su duplikati, ovo tvoje je kompletno "rešenje".
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
|
|