feat: sql select
This commit is contained in:
parent
424cce390e
commit
9661d69c57
@ -2,6 +2,73 @@
|
|||||||
-- Some requests for the statistics and to consult the database.
|
-- 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
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ============================================================================
|
||||||
|
Loading…
x
Reference in New Issue
Block a user