[mysql] group probleem

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • commentator
  • Registratie: Mei 2004
  • Laatst online: 15:17
Mijn vraag
Ik heb een mysqltabel
naamdaguurcursusnaam
jan11bridge
piet11spela
piet11spelb
piet23spelb
piet23spelc
piet23spelc


Nu wil ik deze op naam gaan tellen maar dan zo dat Piet maar 2x opkomt. Want Piet is alleen op dag 1 uur 1 aanwezig en de volgende keer op dag 2 uur 2 3. Dat ie dan meer dingen tegelijk wil doen is zijn probleem.

Wat ik al gevonden of geprobeerd heb

code:
1
SELECT naam, count(*) FROM mijntabel GROUP BY naam


Maar dan telt ie netjes alle keren. Zodra ik group by dag toevoge gaat ie het op dag uitsplitsen en dat wil ik niet. Iemand een idee?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 15:42

Cyphax

Moderator LNX
Je schrijft dat je van "piet" verwacht dat ie 2 keer voorkomt, omdat ie op dag 1 aanwezig was en op dag 2. Als je dan group by op naam én dag doet, dan krijg je dat toch ook? Waarom is het niet goed als ie het op dag uitsplitst? :)

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • commentator
  • Registratie: Mei 2004
  • Laatst online: 15:17
Cyphax schreef op dinsdag 11 oktober 2016 @ 10:12:
Je schrijft dat je van "piet" verwacht dat ie 2 keer voorkomt, omdat ie op dag 1 aanwezig was en op dag 2. Als je dan group by op naam én dag doet, dan krijg je dat toch ook? Waarom is het niet goed als ie het op dag uitsplitst? :)
Bijna. Dan zet ie 2x piet onder elkaar terwijl ik allen wil zien
Jan:1
Piet:2

Acties:
  • +1 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
tel de unieke dagen.... hint: DISTINCT

Acties:
  • 0 Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik snap je gewenste output nog niet, dat komt denk ik ook omdat je voorbeeld niet helemaal klopt.
Want Piet is alleen op dag 1 uur 1 aanwezig en de volgende keer op dag 2 uur 2
Dit zie ik niet terug in je voorbeelddata? Daarnaast zeg je dat je gewenst output Jan: 1 en Piet: 2 is, maar je wilt wel dag toevoegen? Kun je nog een keer aangeven wat je wilt zien obv de voorbeelddata?

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • 0 Henk 'm!

  • commentator
  • Registratie: Mei 2004
  • Laatst online: 15:17
P_de_B schreef op dinsdag 11 oktober 2016 @ 10:34:
Ik snap je gewenste output nog niet, dat komt denk ik ook omdat je voorbeeld niet helemaal klopt.


[...]


Dit zie ik niet terug in je voorbeelddata? Daarnaast zeg je dat je gewenst output Jan: 1 en Piet: 2 is, maar je wilt wel dag toevoegen? Kun je nog een keer aangeven wat je wilt zien obv de voorbeelddata?
Moet inderdaad uur 3 zijn op dag 2

Ik zoek dus
NaamAantal x aanwezig
Jan1
Piet2

Acties:
  • 0 Henk 'm!

  • BlueZero
  • Registratie: Mei 2007
  • Laatst online: 21-07 16:14
Ik denk dat je hier de DISTINCT functie zoekt?

MySQL:
1
SELECT naam, COUNT(DISTINCT dag) FROM mijntabel GROUP BY naam

Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je kauwt nu letterlijk de hint van P.O. Box, met het TELLEN van DISTINCT voor.

(en zoals ik het begrijp is distinct dag én uur gewenst)

{signature}


Acties:
  • 0 Henk 'm!

  • commentator
  • Registratie: Mei 2004
  • Laatst online: 15:17
Klopt het gaat nu inderdaad toch mis

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Gelukkig is het zo gefixed als je de documentatie van count() erbij pakt. :)

{signature}

Pagina: 1