08. september 2010 - 01:32Der er
9 kommentarer og 2 løsninger
Query med rækker, der har mere end én kolonne med random indhold?
Godaften,
Jeg kunne utrolig godt tænke mig at vide hvordan jeg laver en select query, hvor man henter de rækker der fx har mere end én kolonne med indhold ved navn = 'agurk'?
Dvs. altså ikke bare "select * from tabel where kolonne = 'agurk'"
Men hvor den henter alle kolonner, hvor inputtet er der mere end én gang..
arne>> du laver en count for hver række, dvs. lige nu bliver sol og agurk talt to gange. Jeg mistænker at det vil blive dræbende langsomt ved mange række.
Hvad med noget med
SELECT kolonne1 FROM dintabel t1 WHERE kolonne2 in ( SELECT kolonne2 FROM dintabel t2 HAVING count(kolonne2)>1 GROUP BY kolonne2)
SELECT StudyNumber FROM tbl_member t1 WHERE ((SELECT COUNT(*) FROM tbl_member t2 WHERE t1.StudyNumber = t1.StudyNumber) > 1)
Hvis jeg prøver med ovenstående får jeg godt nok nogle rækker ud, men jeg får omkring 5000 rækker, hvor jeg gerne blot skulle have haft ca. 100 - og dem jeg får ud har ingen dobbelte StudyNumbers, så ved ikke lige hvad det er den trækker ud der :S
Ja, det gik lidt hurtigt og jeg har ikke verificeret syntaxen, HAVING skal selvfølgelig efter GROUP BY og der må ikke være referencer mellem t1 og t2:
SELECT t1.StudyNumber FROM tbl_member t1 WHERE t1.StudyNumber IN (SELECT StudyNumber FROM tbl_member t2 GROUP BY t2.StudyNumber HAVING COUNT(t2.StudyNumber) > 1 )
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.