Generar consultes per extreure informació de la BBDD
By ajaimes / gener 16, 2026 / No hi ha comentaris
📊 Consultes SQL – Extracció d’Informació
Intranet LAN Party · Base de Dades SQLite · 12 consultes amb evidències
Febrer 2026
🎯 Resum de tècniques SQL implementades
JOINsINNER JOIN, LEFT JOIN, fins a 4 JOINs en una sola consulta
AgregaciónCOUNT, SUM, MIN, MAX, COUNT(DISTINCT)
FiltratGROUP BY, HAVING, WHERE amb condicions complexes
SubqueriesSubqueries correlades dins SELECT i WHERE
FuncionsCOALESCE, ROUND, CASE WHEN, GROUP_CONCAT
Evidències12 consultes amb resultats reals de la BBDD
📊
C1 – Usuaris amb el nom del rol assignat
ÀREA 1 – USUARIS I ROLS📝 Justificació: Necessitem veure en una sola taula qui és cada usuari i quines funcions té dins del sistema. Utilitzem un INNER JOIN entre
usuaris i rols perquè cada usuari té exactament un rol (FK obligatòria). Ordenem per rol per agrupar visuament admins, jugadors i espectadors.Tècniques SQL: INNER JOINWHEREORDER BY
🖥️ Consulta:
SELECT u.id_usuari, u.nom, u.nick_joc, u.email,
r.nom_rol, r.descripcio AS descripcio_rol
FROM usuaris u
INNER JOIN rols r ON u.id_rol = r.id_rol
WHERE u.actiu = 1
ORDER BY r.id_rol ASC, u.nom ASC;📋 Resultats (10 files):
| id_usuari | nom | nick_joc | nom_rol | descripcio_rol | |
|---|---|---|---|---|---|
| 9 | Albert Coma | AlbertAce | albert.coma@gmail.com | admin | Administrador amb control total del sistema |
| 5 | Dani Solà | DaniStar | dani.sola@gmail.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 7 | Gerard Font | GerardGG | gerard.font@yahoo.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 3 | Jordi Puig | JordiX | jordi.puig@yahoo.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 6 | Laia Valls | LaiaMaster | laia.valls@gmail.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 1 | Marc López | MarcL_Pro | marc.lopez@gmail.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 8 | Neus Camps | NeusFPS | neus.camps@hotmail.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 4 | Paula Roca | PaulaRock | paula.roca@hotmail.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 2 | Sara Martínez | SaraGamer | sara.martinez@gmail.com | jugador | Usuari que pot inscriure's i participar en tornejos |
| 10 | Rita Mas | RitaPlay | rita.mas@yahoo.com | espectador | Usuari que només pot veure contingut i fer xat |
📊
C2 – Nombre d'usuaris per cada rol
ÀREA 1 – USUARIS I ROLS📝 Justificació: Ens permet saber la distribució de rols dins del sistema: quants admins tenim, quants jugadors actius i espectadors. Molt útil per a l’administrador per controlar el balanç de la comunitat. Utilitzem GROUP BY amb COUNT i LEFT JOIN per incloure rols sense usuaris.
Tècniques SQL: LEFT JOINGROUP BYCOUNTORDER BY
🖥️ Consulta:
SELECT r.nom_rol, r.descripcio,
COUNT(u.id_usuari) AS total_usuaris
FROM rols r
LEFT JOIN usuaris u ON r.id_rol = u.id_rol AND u.actiu = 1
GROUP BY r.id_rol, r.nom_rol, r.descripcio
ORDER BY total_usuaris DESC;📋 Resultats (3 files):
| nom_rol | descripcio | total_usuaris |
|---|---|---|
| jugador | Usuari que pot inscriure's i participar en tornejos | 8 |
| admin | Administrador amb control total del sistema | 1 |
| espectador | Usuari que només pot veure contingut i fer xat | 1 |
📊
C3 – Usuaris inscrits amb estat de pagament
ÀREA 2 – INSCRIPCIONS📝 Justificació: L’organitzador necessita saber qui s’ha inscrit a cada poble i si ha pagat la entrada. Utilitzem un doble JOIN (inscripcions → usuaris, inscripcions → lan_party) i CASE WHEN per convertir els valors booleens (0/1) en texto llegible (‘Sí’/’No’).
Tècniques SQL: INNER JOIN (x2)CASE WHENORDER BY
🖥️ Consulta:
SELECT lp.nom_événiment, u.nick_joc, u.nom,
CASE WHEN i.ha_pagat = 1 THEN 'Sí' ELSE 'No' END AS ha_pagat,
CASE WHEN i.ha_assistit = 1 THEN 'Sí' ELSE 'No' END AS ha_assistit,
i.data_inscripcio
FROM inscripcions i
INNER JOIN usuaris u ON i.id_usuari = u.id_usuari
INNER JOIN lan_party lp ON i.id_lan_party = lp.id_lan_party
ORDER BY lp.id_lan_party ASC, i.ha_pagat DESC, u.nom ASC;📋 Resultats (13 files):
| nom_événiment | nick_joc | nom | ha_pagat | ha_assistit | data_inscripcio |
|---|---|---|---|---|---|
| LAN Party Hivern 2026 | DaniStar | Dani Solà | Sí | Sí | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | GerardGG | Gerard Font | Sí | No | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | JordiX | Jordi Puig | Sí | No | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | LaiaMaster | Laia Valls | Sí | Sí | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | MarcL_Pro | Marc López | Sí | Sí | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | NeusFPS | Neus Camps | Sí | Sí | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | SaraGamer | Sara Martínez | Sí | Sí | 2026-02-03 12:46:33 |
| LAN Party Hivern 2026 | PaulaRock | Paula Roca | No | No | 2026-02-03 12:46:33 |
| LAN Party Primavera 2026 | AlbertAce | Albert Coma | Sí | No | 2026-02-03 12:46:33 |
| LAN Party Primavera 2026 | DaniStar | Dani Solà | Sí | No | 2026-02-03 12:46:33 |
| LAN Party Primavera 2026 | LaiaMaster | Laia Valls | Sí | No | 2026-02-03 12:46:33 |
| LAN Party Primavera 2026 | MarcL_Pro | Marc López | Sí | No | 2026-02-03 12:46:33 |
| LAN Party Primavera 2026 | SaraGamer | Sara Martínez | No | No | 2026-02-03 12:46:33 |
📊
C4 – Resum d'inscripcions per LAN Party
ÀREA 2 – INSCRIPCIONS📝 Justificació: Ens permet saber el resum de cada poble: quants inscrits, quants han pagat i quin percentatge d’assistència. El HAVING filtra sols les LAN Parties amb almenys 3 inscripcions. Usem COUNT condicional amb CASE i ROUND per calcular el percentatge d’assistència.
Tècniques SQL: LEFT JOINGROUP BYHAVINGSUMCASE WHENROUND
🖥️ Consulta:
SELECT lp.nom_événiment, lp.capacitat_maxima,
COUNT(i.id_inscripcio) AS total_inscrits,
SUM(CASE WHEN i.ha_pagat = 1 THEN 1 ELSE 0 END) AS han_pagat,
SUM(CASE WHEN i.ha_assistit = 1 THEN 1 ELSE 0 END) AS han_assistit,
ROUND(SUM(CASE WHEN i.ha_assistit=1 THEN 1 ELSE 0 END)*100.0/COUNT(i.id_inscripcio),1) AS pct_assistencia
FROM lan_party lp
LEFT JOIN inscripcions i ON lp.id_lan_party = i.id_lan_party
GROUP BY lp.id_lan_party, lp.nom_événiment, lp.capacitat_maxima
HAVING COUNT(i.id_inscripcio) >= 3
ORDER BY total_inscrits DESC;📋 Resultats (2 files):
| nom_événiment | capacitat_maxima | total_inscrits | han_pagat | han_assistit | pct_assistencia |
|---|---|---|---|---|---|
| LAN Party Hivern 2026 | 100 | 8 | 7 | 5 | 62.5 |
| LAN Party Primavera 2026 | 80 | 5 | 4 | 0 | 0.0 |
📊
C5 – Tornejos amb el joc i la LAN Party
ÀREA 3 – JOCS I TORNEJOS📝 Justificació: Vista resum de tots els tornejos amb el joc i l’poble associat. Molt útil per a la pàgina principal de la intranet. Usem un doble JOIN: tornejos → jocs i tornejos → lan_party, i ordenem per estat per mostrar primer els en curs.
Tècniques SQL: INNER JOIN (x2)ORDER BY
🖥️ Consulta:
SELECT t.id_torneig, t.nom_torneig, j.nom_joc, j.genere,
lp.nom_événiment, t.format, t.max_participants,
t.premi, t.estat, t.data_inici, t.data_fi
FROM tornejos t
INNER JOIN jocs j ON t.id_joc = j.id_joc
INNER JOIN lan_party lp ON t.id_lan_party = lp.id_lan_party
ORDER BY t.estat ASC, t.data_inici ASC;📋 Resultats (6 files):
| id_torneig | nom_torneig | nom_joc | genere | nom_événiment | format | max_participants | premi | estat | data_inici | data_fi |
|---|---|---|---|---|---|---|---|---|---|---|
| 4 | Torneig FIFA 24 – 1v1 | FIFA 24 | Esports | LAN Party Hivern 2026 | eliminacio_directa | 4 | regalo valorat en 30€ | en_curs | 2026-02-16 14:00 | 2026-02-16 16:00 |
| 1 | Torneig CS2 – Fase Final | Counter-Strike 2 | FPS | LAN Party Hivern 2026 | eliminacio_directa | 8 | regalo valorat en 60€ | finalitzat | 2026-02-15 11:00 | 2026-02-15 14:00 |
| 2 | Torneig Valorant – Lliga | Valorant | FPS | LAN Party Hivern 2026 | lliga | 6 | regalo valorat en 40€ | finalitzat | 2026-02-15 15:00 | 2026-02-15 18:00 |
| 3 | Torneig LoL – Eliminació | League of Legends | MOBA | LAN Party Hivern 2026 | eliminacio_directa | 4 | regalo valorat en 80€ | finalitzat | 2026-02-16 10:00 | 2026-02-16 13:00 |
| 5 | Torneig CS2 – Primavera | Counter-Strike 2 | FPS | LAN Party Primavera 2026 | lliga | 6 | regalo valorat en 50€ | obert | 2026-04-10 10:00 | 2026-04-10 13:00 |
| 6 | Torneig Rocket League | Rocket League | Esports | LAN Party Primavera 2026 | eliminacio_directa | 4 | regalo valorat en 35€ | obert | 2026-04-11 10:00 | 2026-04-11 12:00 |
📊
C6 – Popularitat de jocs per participacions
ÀREA 3 – JOCS I TORNEJOS📝 Justificació: Ens permet analitzar quins jocs són els més populars. Comptem tornejos i participants per joc. El HAVING elimina els jocs sense participacions. Usem COUNT(DISTINCT) per comptador únics de tornejos i COALESCE per manejar NULLs.
Tècniques SQL: LEFT JOIN (x2)GROUP BYHAVINGCOUNT(DISTINCT)MAXCOALESCE
🖥️ Consulta:
SELECT j.nom_joc, j.genere,
COUNT(DISTINCT t.id_torneig) AS num_tornejos,
COUNT(pt.id_participacio) AS num_participacions,
COALESCE(MAX(pt.puntuacio), 0) AS puntuacio_maxima
FROM jocs j
LEFT JOIN tornejos t ON j.id_joc = t.id_joc
LEFT JOIN participants_torneig pt ON t.id_torneig = pt.id_torneig
GROUP BY j.id_joc, j.nom_joc, j.genere
HAVING COUNT(pt.id_participacio) > 0
ORDER BY num_participacions DESC;📋 Resultats (4 files):
| nom_joc | genere | num_tornejos | num_participacions | puntuacio_maxima |
|---|---|---|---|---|
| Counter-Strike 2 | FPS | 2 | 6 | 100 |
| Valorant | FPS | 1 | 5 | 90 |
| FIFA 24 | Esports | 1 | 4 | 0 |
| League of Legends | MOBA | 1 | 4 | 100 |
📊
C7 – Classificació global per puntuació total
ÀREA 3 – CLASSIFICACIONS📝 Justificació: La classificació general és una de les pàgines clau de la intranet. Suma les puntuacions de tots els tornejos amb SUM, i usem MIN per mostrar la millor posició aconseguida. GROUP BY sobre participants_torneig amb JOIN cap a usuaris.
Tècniques SQL: INNER JOINGROUP BYSUMCOUNT(DISTINCT)MINORDER BY
🖥️ Consulta:
SELECT u.nick_joc, u.nom,
COUNT(DISTINCT pt.id_torneig) AS tornejos_jugats,
SUM(pt.puntuacio) AS puntuacio_total,
MIN(pt.posicio_final) AS millor_posicio
FROM usuaris u
INNER JOIN participants_torneig pt ON u.id_usuari = pt.id_usuari
GROUP BY u.id_usuari, u.nick_joc, u.nom
ORDER BY puntuacio_total DESC;📋 Resultats (8 files):
| nick_joc | nom | tornejos_jugats | puntuacio_total | millor_posicio |
|---|---|---|---|---|
| MarcL_Pro | Marc López | 3 | 225 | 1 |
| SaraGamer | Sara Martínez | 3 | 220 | 1 |
| DaniStar | Dani Solà | 3 | 205 | 2 |
| LaiaMaster | Laia Valls | 3 | 120 | 3 |
| NeusFPS | Neus Camps | 3 | 70 | 4 |
| JordiX | Jordi Puig | 2 | 20 | 6 |
| PaulaRock | Paula Roca | 1 | 0 | NULL |
| GerardGG | Gerard Font | 1 | 0 | NULL |
📊
C8 – Jugadors amb almenys 2 victòries
ÀREA 3 – CLASSIFICACIONS📝 Justificació: Identificar els jugadors amb millor rendiment competitiu. Usem subqueries correlades dins del SELECT i del WHERE per comptador victòries i partides jugades sense necesitat de GROUP BY complex. El WHERE filtra sols els jugadors amb ≥ 2 victòries.
Tècniques SQL: Subquery correlada (x3)WHEREORDER BY
🖥️ Consulta:
SELECT u.nick_joc, u.nom,
(SELECT COUNT(*) FROM partides p
WHERE p.id_guanyador = u.id_usuari AND p.estat='finalitzada') AS victoríes,
(SELECT COUNT(*) FROM partides p
WHERE (p.id_jugador1=u.id_usuari OR p.id_jugador2=u.id_usuari)
AND p.estat='finalitzada') AS partides_jugades
FROM usuaris u
WHERE (SELECT COUNT(*) FROM partides p
WHERE p.id_guanyador=u.id_usuari AND p.estat='finalitzada') >= 2
ORDER BY victoríes DESC;📋 Resultats (3 files):
| nick_joc | nom | victoríes | partides_jugades |
|---|---|---|---|
| MarcL_Pro | Marc López | 5 | 6 |
| SaraGamer | Sara Martínez | 4 | 6 |
| DaniStar | Dani Solà | 3 | 6 |
📊
C9 – Classificació dins de cada torneig
ÀREA 3 – CLASSIFICACIONS📝 Justificació: Cada torneig necessita mostrar la seva pròpia classificació amb nick i posició. Usem un triple JOIN (participants_torneig → tornejos → jocs → usuaris) i ordenem per torneig i posició final ascendent.
Tècniques SQL: INNER JOIN (x3)WHERE IS NOT NULLORDER BY
🖥️ Consulta:
SELECT t.nom_torneig, j.nom_joc, u.nick_joc, u.nom,
pt.posicio_final, pt.puntuacio
FROM participants_torneig pt
INNER JOIN tornejos t ON pt.id_torneig = t.id_torneig
INNER JOIN jocs j ON t.id_joc = j.id_joc
INNER JOIN usuaris u ON pt.id_usuari = u.id_usuari
WHERE pt.posicio_final IS NOT NULL
ORDER BY t.id_torneig ASC, pt.posicio_final ASC;📋 Resultats (15 files):
| nom_torneig | nom_joc | nick_joc | nom | posicio_final | puntuacio |
|---|---|---|---|---|---|
| Torneig CS2 – Fase Final | Counter-Strike 2 | MarcL_Pro | Marc López | 1 | 100 |
| Torneig CS2 – Fase Final | Counter-Strike 2 | SaraGamer | Sara Martínez | 2 | 80 |
| Torneig CS2 – Fase Final | Counter-Strike 2 | DaniStar | Dani Solà | 3 | 60 |
| Torneig CS2 – Fase Final | Counter-Strike 2 | LaiaMaster | Laia Valls | 4 | 40 |
| Torneig CS2 – Fase Final | Counter-Strike 2 | NeusFPS | Neus Camps | 5 | 30 |
| Torneig CS2 – Fase Final | Counter-Strike 2 | JordiX | Jordi Puig | 6 | 20 |
| Torneig Valorant – Lliga | Valorant | SaraGamer | Sara Martínez | 1 | 90 |
| Torneig Valorant – Lliga | Valorant | DaniStar | Dani Solà | 2 | 70 |
| Torneig Valorant – Lliga | Valorant | LaiaMaster | Laia Valls | 3 | 55 |
| Torneig Valorant – Lliga | Valorant | NeusFPS | Neus Camps | 4 | 40 |
| Torneig Valorant – Lliga | Valorant | MarcL_Pro | Marc López | 5 | 25 |
| Torneig LoL – Eliminació | League of Legends | MarcL_Pro | Marc López | 1 | 100 |
| Torneig LoL – Eliminació | League of Legends | DaniStar | Dani Solà | 2 | 75 |
| Torneig LoL – Eliminació | League of Legends | SaraGamer | Sara Martínez | 3 | 50 |
| Torneig LoL – Eliminació | League of Legends | LaiaMaster | Laia Valls | 4 | 25 |
📊
C10 – Detall de partides amb guanyador
ÀREA 3 – PARTIDES📝 Justificació: Vista completa de partides finalitzades amb noms llegibles. Necessita 4 JOINs: torneig, jugador1, jugador2 i guanyador. El guanyador pot ser NULL, per tant usem LEFT JOIN i COALESCE per mostrar ‘Empat / Pendent’.
Tècniques SQL: INNER JOIN (x3)LEFT JOINCOALESCEWHEREORDER BY
🖥️ Consulta:
SELECT t.nom_torneig, p.ronda,
u1.nick_joc AS jugador_1, u2.nick_joc AS jugador_2,
p.puntuacio_j1, p.puntuacio_j2,
COALESCE(ug.nick_joc, 'Empat / Pendent') AS guanyador,
p.estat, p.data_hora
FROM partides p
INNER JOIN tornejos t ON p.id_torneig = t.id_torneig
INNER JOIN usuaris u1 ON p.id_jugador1 = u1.id_usuari
INNER JOIN usuaris u2 ON p.id_jugador2 = u2.id_usuari
LEFT JOIN usuaris ug ON p.id_guanyador = ug.id_usuari
WHERE p.estat = 'finalitzada'
ORDER BY t.id_torneig ASC, p.ronda ASC;📋 Resultats (12 files):
| nom_torneig | ronda | jugador_1 | jugador_2 | puntuacio_j1 | puntuacio_j2 | guanyador | estat | data_hora |
|---|---|---|---|---|---|---|---|---|
| Torneig CS2 – Fase Final | 1 | MarcL_Pro | JordiX | 16 | 10 | MarcL_Pro | finalitzada | 2026-02-15 11:00 |
| Torneig CS2 – Fase Final | 1 | SaraGamer | LaiaMaster | 14 | 9 | SaraGamer | finalitzada | 2026-02-15 11:30 |
| Torneig CS2 – Fase Final | 1 | DaniStar | NeusFPS | 13 | 11 | DaniStar | finalitzada | 2026-02-15 12:00 |
| Torneig CS2 – Fase Final | 2 | MarcL_Pro | SaraGamer | 16 | 14 | MarcL_Pro | finalitzada | 2026-02-15 13:00 |
| Torneig CS2 – Fase Final | 3 | MarcL_Pro | DaniStar | 16 | 12 | MarcL_Pro | finalitzada | 2026-02-15 13:45 |
| Torneig Valorant – Lliga | 1 | SaraGamer | MarcL_Pro | 13 | 8 | SaraGamer | finalitzada | 2026-02-15 15:00 |
| Torneig Valorant – Lliga | 1 | DaniStar | LaiaMaster | 13 | 10 | DaniStar | finalitzada | 2026-02-15 15:30 |
| Torneig Valorant – Lliga | 1 | NeusFPS | SaraGamer | 10 | 13 | SaraGamer | finalitzada | 2026-02-15 16:00 |
| Torneig Valorant – Lliga | 2 | SaraGamer | DaniStar | 13 | 11 | SaraGamer | finalitzada | 2026-02-15 16:30 |
| Torneig LoL – Eliminació | 1 | MarcL_Pro | SaraGamer | 1 | 0 | MarcL_Pro | finalitzada | 2026-02-16 10:00 |
| Torneig LoL – Eliminació | 1 | DaniStar | LaiaMaster | 1 | 0 | DaniStar | finalitzada | 2026-02-16 10:45 |
| Torneig LoL – Eliminació | 2 | MarcL_Pro | DaniStar | 1 | 0 | MarcL_Pro | finalitzada | 2026-02-16 11:30 |
📊
C11 – Missatges del xat amb autor
ÀREA 4 – COMUNICACIÓ📝 Justificació: El sistema de xat necessita mostrar missatges en ordre cronològic amb el nick de l’autor i a quina LAN Party pertanyen. Usem JOIN amb usuaris i lan_party i CASE WHEN per mostrar l’estat de lectura llegiblement.
Tècniques SQL: INNER JOIN (x2)CASE WHENORDER BY
🖥️ Consulta:
SELECT lp.nom_événiment, u.nick_joc AS autor, m.contingut, m.data_hora,
CASE WHEN m.llegit = 1 THEN 'Llegit' ELSE 'No llegit' END AS estat_lectura
FROM missatges_xat m
INNER JOIN usuaris u ON m.id_usuari = u.id_usuari
INNER JOIN lan_party lp ON m.id_lan_party = lp.id_lan_party
ORDER BY lp.id_lan_party ASC, m.data_hora DESC;📋 Resultats (8 files):
| nom_événiment | autor | contingut | data_hora | estat_lectura |
|---|---|---|---|---|
| LAN Party Hivern 2026 | MarcL_Pro | Hola a tots! Qui vol jugar CS2 primer? | 2026-02-03 12:46:33 | Llegit |
| LAN Party Hivern 2026 | SaraGamer | Jo! Tinc les ganes del món | 2026-02-03 12:46:33 | Llegit |
| LAN Party Hivern 2026 | DaniStar | Compte, vaig a guanyar-vos a tots 😄 | 2026-02-03 12:46:33 | Llegit |
| LAN Party Hivern 2026 | LaiaMaster | On és la sala de jocs? | 2026-02-03 12:46:33 | No llegit |
| LAN Party Hivern 2026 | NeusFPS | Sala 3, primera planta | 2026-02-03 12:46:33 | No llegit |
| LAN Party Hivern 2026 | MarcL_Pro | GG tots! Gran torneig | 2026-02-03 12:46:33 | No llegit |
| LAN Party Primavera 2026 | SaraGamer | Ens veiem a la primavera? | 2026-02-03 12:46:33 | No llegit |
| LAN Party Primavera 2026 | MarcL_Pro | Sí! Ja m'han confirmat la inscripció | 2026-02-03 12:46:33 | No llegit |
📊
C12 – Notificacions no llegides per tipus
ÀREA 4 – COMUNICACIÓ📝 Justificació: L’usuari necessita saber quantes notificacions pendents té de cada categoria. Agrupa per tipus amb GROUP BY i HAVING per sols mostrar les que tenim pendents. Usem GROUP_CONCAT per llistar els títols dins d’una sola fila.
Tècniques SQL: GROUP BYHAVINGCOUNTGROUP_CONCATWHERE
🖥️ Consulta:
SELECT n.tipus,
COUNT(*) AS total_no_llegides,
GROUP_CONCAT(n.titol, ' | ') AS titols_pendents
FROM notificacions n
WHERE n.llegida = 0
GROUP BY n.tipus
HAVING COUNT(*) >= 1
ORDER BY total_no_llegides DESC;📋 Resultats (4 files):
| tipus | total_no_llegides | titols_pendents |
|---|---|---|
| torneig | 2 | Torneig FIFA en curs | Resultats del Torneig CS2 |
| xat | 1 | Nou missatge en el xat |
| sistema | 1 | Actualització del sistema |
| inscripcio | 1 | Inscripció confirmada |
