Bonjour,
J'ai quelques requête à faire sur une base de donnée en SQL
la base :
Mes requète :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 TABLE PROJECT PROJECTID CHARACTER(10) (Primary Key) PROJECT_NAME CHARACTER(40) TABLE COMPOUND COMPID CHARACTER(15) (Primary Key) STRUCTURE BLOB TABLE REACTION REACTIONID INTEGER (Primary Key) COMPID CHARACTER(15) BATCHNO CHARACTER(35)(Unique Key) PROJECTID CHARACTER(10) LIBRARYNAME CHARACTER(35) TABLE BIOLOGICAL_DATA COMPID CHARACTER(15) BATCHNO CHARACTER(35) TESTID NUMBER PROJECTID CHARACTER(10) NUM_VALUE NUMBER ANALYTICALID INTEGER REACTIONID INTEGER BIODATAID INTEGER (Primary Key) TABLE SAMPLE_DATA ANALYTICALID INTEGER (Primary Key) REACTIONID INTEGER PROJECTID CHARACTER(10) BARCODE CHARACTER(35) CONTAINERID CHARACTER(35) WELL NUMBER QUANTITY NUMBER UNIT CHARACTER(10) PURITY NUMBER
1) obtenir la liste de tous les projets (PROJECTID) et le nombre total de "batches" (repéré par, je pense, BATCHNO) pour chaqu'un.
2) obtenir la liste de tous les projets (PROJECTID) et le nombre total de "biological results" (repéré par, je pense, BIODATAID) pour chaqu'un.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select PROJECTID, count(BATCHNO) as number of batches from PROJECT P, REACTION R where P.PROJECTID = R.PROJECTID
3) obtenir la liste de tous les composants (COMPID) et le nombre total de "batches"(lots) et "sample"(échantillon) pour chaqu'un.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select PROJECTID, count(BIODATAID) as number of biological results from PROJECT P, BIOLOGICAL_DATA B where P.PROJECTID = B.PROJECTID
4) obtenir la liste de tous les "batches"(lots) (BATCHNO) ayant une "purity" moyenne >50 pour les "samples"(échantillions) ayant une "quantity">10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select COMPID, count(BATCHNO), sum(QUANTITY) from BIOLOGICAL_DATA B, SAMPLE_DATA S where B.ANALYTICALID = S.ANALYTICALID
5) obtenir la liste de tous les "batches"(lots) (BATCHNO) n'ayant pas de "biological data"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select BATCHNO, avg(PURITY) from REACTION R, SAMPLE_DATA S where R.REACTIONID = S.REACTIONID and S.QUANTITY <10 group by BATCHNO having AVG(PURITY)<50
Voilà c'est assez long je m'en excuse,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select BATCHNO from REACTION R where R.BATCHNO not in( select BATCHNO from BIOLOGICAL_DATA )
Est-ce quelqu'un peut me dire si mes réponses sont correctes, et sinon quelles sont fautes que je doit corriger ?
Je débute en SQL, donc toute aide est la bien venue !!
MERCI d'avance !!
Partager