Il famoso count nelle query sql "banali"

di zio_mangrovia il
3 risposte
Secondo voi come mai questa query non funziona?
Vorrei contare il numero dei corsi delle matricole A e B non utilizzando la clausola GROUP BY.
Mi sarei aspettato che l'IF conteggiasse il record nel caso la matricola verificasse la condizione, invece conta tutti i record, come mai?
Se invece la condizione non fosse verificata mi sarei aspettato al posto del count che avesse inserito uno zero.
volevo un output di questo genere... invece !!!

matricola nCorsiA nCorsiB
A 4 0
B 0 3

SELECT matricola, IF(matricola='A',
IF(matricola='A', COUNT(*), 0) as nCorsiA,
IF(matricola='B', COUNT(*), 0) as nCorsiB
FROM table;

table

matricola corso dataiscrizione

A informatica ...
A disegno
B tecnologia
A italiano
A meccanica
B italiano
B informatica

3 Risposte

  • Così, a "occhio", dovresti riguardare un pochino come funziona SQL.
  • A me sembrava che il count dovesse intervenire solo laddove verificata la condizione
  • zio_mangrovia ha scritto:


    A me sembrava che il count dovesse intervenire solo laddove verificata la condizione
    Dove lo hai studiato...? Puoi darcene indicazione...?
Devi accedere o registrarti per scrivere nel forum
3 risposte