feat: sql select

This commit is contained in:
Martin Eyben 2024-11-27 13:30:08 +00:00
parent 424cce390e
commit 9661d69c57

View File

@ -2,6 +2,73 @@
-- Some requests for the statistics and to consult the database.
-- ============================================================================
-- ============================================================================
-- CONSULTATION
-- ============================================================================
-- Liste des boîtes parues depuis 5 ans.
SELECT boites.titre_boite
FROM boites
WHERE DATE_PART('year', AGE(NOW(), boites.date_boite) < 5;
--Liste des modèles proposés par des fans.
SELECT id_modeles
FROM modeles
WHERE id_membre NOT NULL;
-- Liste des pièces qui apparaissent dans des boîtes de différentes marques.
SELECT id_piece
FROM ( -- couple (piece,marque) d'ou vient les pieces
SELECT DISTINCT id_piece, id_marque FROM contenir
NATURAL JOIN boites
NATURAL JOIN marques
)
GROUP BY id_piece
WHERE COUNT(*) > 1;
-- ============================================================================
-- ============================================================================
-- STATISTIQUES
-- ============================================================================
-- Nombre de piece par boite
CREATE OR REPLACE VIEW nb_piece_par_boite AS
(
SELECT id_boite, SUM(quantite_contenir) as nb_piece
FROM contenir
GROUP BY id_boite
);
-- Le nombre moyen de pièces par boîte.
SELECT AVG(nb_piece)
FROM nb_piece_par_boite
;
-- nombre de modele proposés par membre
CREATE OR REPLACE VIEW nb_modele_par_boite AS
(
SELECT id_membre, COUNT(*) as nb_boite
FROM modeles
GROUP BY id_membre
);
-- La liste des membres qui ont proposé le plus de modèles.
SELECT id_membre, nb_boite
FROM nb_modele_par_boite
ORDER BY nb_boite
DESC
LIMIT 5
;
-- La liste des modèles, classés par note moyenne descendante.
SELECT id_modele, AVG(note_noter) as note_moyenne
FROM noter
GROUP BY id_modele
ORDER BY note_moyenne
DESC
;
-- ============================================================================