J'essaie d'extraire de l'une de nos tables db la fréquence d'un type particulier d'étude qui correspond au type «G» (G GAR GER GR) ainsi que le nombre total d'études dans cette semaine (correspond à tout type) et la fréquence relative des «G». Je veux que la sortie soit groupée en semaines (commençant le lundi et se terminant le vendredi).psql extraits comptes hebdomadaires et pourcentage du total
J'utilise generate_series
pour obtenir une gamme de lundi au cours de la période d'intérêt
SELECT (current_date- cast(extract(dow from current_date) as int) + 1) - s.a AS dates FROM generate_series(0,182,7) AS s(a);
En utilisant la commande suivante
FROM (SELECT (current_date- cast(extract(dow from current_date) as int) + 1) - s.a AS dates FROM generate_series(0,182,7) AS s(a)) d
LEFT JOIN study ON
study_date <= d.dates
WHERE study_name ~ 'T(C|L)S' and study_type ~'G'
GROUP BY 1
ORDER BY 1;
-je obtenir la sortie suivante
dates | count
------------+-------
26/06/2017 | 6
03/07/2017 | 11
10/07/2017 | 15
17/07/2017 | 30
24/07/2017 | 38
31/07/2017 | 47
07/08/2017 | 61
14/08/2017 | 77
Cela me donne un bon rolli ng compte comme nous faisons plus d'études de type 'G'. Cependant, j'essaie ce qui suit pour diviser ce en plages hebdomadaires
SELECT d.dates, count(*)
FROM (SELECT (current_date- cast(extract(dow from current_date) as int) + 1) - s.a AS dates FROM generate_series(0,182,7) AS s(a)) d
LEFT JOIN study ON
study_date >= d.dates
WHERE study_name ~ 'T(C|L)S' and study_type ~ 'G' AND study_date <= myo_date + interval '5' day
GROUP BY 1
ORDER BY 1;
me donne une sortie que je ne comprends pas (j'attendais la différence entre les lignes de sortie ci-dessus)
dates | count
------------+-------
13/02/2017 | 79
20/02/2017 | 79
27/02/2017 | 79
06/03/2017 | 79
13/03/2017 | 79
20/03/2017 | 79
27/03/2017 | 79
03/04/2017 | 79
10/04/2017 | 79
17/04/2017 | 79
24/04/2017 | 79
01/05/2017 | 79
08/05/2017 | 79
15/05/2017 | 79
22/05/2017 | 79
29/05/2017 | 79
05/06/2017 | 79
12/06/2017 | 79
19/06/2017 | 79
26/06/2017 | 74
03/07/2017 | 70
10/07/2017 | 68
17/07/2017 | 53
24/07/2017 | 44
31/07/2017 | 34
07/08/2017 | 22
14/08/2017 | 3
Comment puis-je obtenir les chiffres sur une base hebdomadaire? Aussi, comment puis-je ajouter un nombre total de colonnes supplémentaires où study_type peut être quelque chose.
sortie Expected
dates | count
------------+-------
26/06/2017 | 6
03/07/2017 | 5
10/07/2017 | 4
17/07/2017 | 15
24/07/2017 | 8
31/07/2017 | 9
07/08/2017 | 14
14/08/2017 | 16
Quelle est la deuxième sortie attendue? –
@TimBiegeleisen essentiellement la différence entre deux lignes sur la première sortie. Nombre d'études effectuées entre le lundi et le vendredi où la date du lundi provient de la série générée – moadeep
Fait @ TimBiegeleisen – moadeep