Hallo,

Ik moet voor school een database maken met verschillende opdrachten. Nu heb ik een opdracht waar ik niet helemaal uit kom.

Ik heb nu de kolom 'nummer' met de volgende waardes:
91
472
7382
91
2732

Zoals je ziet staat de waarde 91 er twee keer in. Nu moet ik voor mijn opdracht krijgen dat 91 weggelaten wordt en het resultaat er dus als volgend uitziet:
472
7382
2732

Ik hoop dat iemand mij hier bij kan helpen!
Al gekeken naar SELECT DISTINCT... FROM... ?
- Ariën - op 16/04/2019 15:36:17

Al gekeken naar SELECT DISTINCT... FROM... ?

Ja, maar dit laat het getal 91 er 1x tussen staan, maar hij mag er helemaal niet tussen staan.


[size=xsmall]Toevoeging op 16/04/2019 15:58:12:[/size]

Adoptive Solution op 16/04/2019 15:42:12

SELECT nummer FROM tabel WHERE nummer > 91



Dit is een manier, maar niet de juiste. Ik zou anders ook kunnen doen WHERE nummer <> 91.
Adoptive Solution op 16/04/2019 16:04:39

Als je het weet, waarom roep je dan om hulp?


Omdat ik het niet weet. De manier die jij zegt en die ik vervolgens als voorbeeld geef zijn makkelijk te gebruiken bij kleine databases omdat je dan zo de nummer kan opzoeken die dubbel staan. Als je een database hebt met duizenden nummers, vind je niet zo makkelijk alle nummers die er dubbel in staan. Waarschijnlijk is er een query waarbij de computer dat zo kan vinden. Die query zoek ik, ook al kan ik het op deze kleine schaal zelf vinden.
Of je nu 2 dubbele getallen hebt in een datset met 5 records of een dataset van 100.000 records. Voor een computer is en blijft het een makkie.
Wat je zoekt is "having" (icm "group by"):

select nummer,count(*)
from nummers
group by nummer
having count(*) = 1

Deze groepeert op unieke nummers ("group by nummer"), en toont alleen degenen die maar 1x voorkomen ("having count(*) = 1").
- Ariën - op 16/04/2019 16:12:51

Of je nu 2 dubbele getallen hebt in een datset met 5 records of een dataset van 100.000 records. Voor een computer is en blijft het een makkie.


Klopt, als je maar de juiste query hebt, en naar die ben ik opzoek.
Kijk eens naar Rob's query met HAVING
Rob Doemaarwat op 16/04/2019 16:14:58

Wat je zoekt is "having" (icm "group by"):

select nummer,count(*)
from nummers
group by nummer
having count(*) = 1

Deze groepeert op unieke nummers ("group by nummer"), en toont alleen degenen die maar 1x voorkomen ("having count(*) = 1").


Super erg bedankt! Ik heb hierdoor het juist antwoord kunnen vinden! Super!

Reageren