Skip to content

Commit 9f7b448

Browse files
committed
fix sql queries
1 parent 4868232 commit 9f7b448

1 file changed

Lines changed: 21 additions & 22 deletions

File tree

lib/database/repositories/QcFlagRepository.js

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -58,33 +58,32 @@ class QcFlagRepository extends Repository {
5858
async findGaqPeriods(dataPassId, runNumber) {
5959
const query = `
6060
SELECT
61-
gaq_periods.data_pass_id AS dataPassId,
62-
gaq_periods.run_number AS runNumber,
63-
gaq_periods.\`from\` AS \`from\`,
64-
gaq_periods.\`to\` AS \`to\`,
61+
gp.data_pass_id AS dataPassId,
62+
gp.run_number AS runNumber,
63+
gp.\`from\` AS \`from\`,
64+
gp.\`to\` AS \`to\`,
6565
group_concat(qcf.id) AS contributingFlagIds,
66-
gaq_periods.coverage_ratio AS coverage_ratio
66+
gp.coverage_ratio AS coverage_ratio
6767
6868
FROM quality_control_flags AS qcf
69-
INNER JOIN quality_control_flag_effective_periods AS qcfep
70-
ON qcf.id = qcfep.flag_id
69+
INNER JOIN quality_control_flag_effective_periods AS qcfep ON qcf.id = qcfep.flag_id
7170
INNER JOIN data_pass_quality_control_flag AS dpqcf ON dpqcf.quality_control_flag_id = qcf.id
72-
INNER JOIN gaq_periods AS gaq_periods ON gaq_periods.data_pass_id = dpqcf.data_pass_id
71+
INNER JOIN gaq_periods AS gp ON gp.data_pass_id = dpqcf.data_pass_id
7372
INNER JOIN global_aggregated_quality_detectors AS gaqd
74-
ON gaqd.data_pass_id = gaq_periods.data_pass_id
75-
AND gaqd.run_number = gaq_periods.run_number
76-
AND gaqd.detector_id = qcf.detector_id
77-
AND gaq_periods.run_number = qcf.run_number
78-
AND (qcfep.\`from\` IS NULL OR qcfep.\`from\` <= gaq_periods.\`from\`)
79-
AND (qcfep.\`to\` IS NULL OR gaq_periods.\`to\` <= qcfep.\`to\`)
73+
ON gaqd.data_pass_id = gp.data_pass_id
74+
AND gaqd.run_number = gp.run_number
75+
AND gaqd.detector_id = qcf.detector_id
76+
AND gp.run_number = qcf.run_number
77+
AND (qcfep.\`from\` IS NULL OR qcfep.\`from\` <= gp.\`from\`)
78+
AND (qcfep.\`to\` IS NULL OR gp.\`to\` <= qcfep.\`to\`)
8079
81-
WHERE gaq_periods.data_pass_id = ${dataPassId}
82-
${runNumber ? `AND gaq_periods.run_number = ${runNumber}` : ''}
80+
WHERE gp.data_pass_id = ${dataPassId}
81+
${runNumber ? `AND gp.run_number = ${runNumber}` : ''}
8382
84-
GROUP BY gaq_periods.run_number,
85-
gaq_periods.data_pass_id,
86-
gaq_periods.\`from\`,
87-
gaq_periods.\`to\`;
83+
GROUP BY gp.run_number,
84+
gp.data_pass_id,
85+
gp.\`from\`,
86+
gp.\`to\`;
8887
`;
8988

9089
const [rows] = await this.model.sequelize.query(query);
@@ -118,7 +117,7 @@ class QcFlagRepository extends Repository {
118117
gp.data_pass_id,
119118
gp.run_number,
120119
gp.coverage_ratio,
121-
qc_flag_block_significance(qcft.bad, qcft.monte_carlo_reproducible) AS significance,
120+
IF(COUNT(DISTINCT qcf.id) > 0, qc_flag_block_significance(qcft.bad, qcft.monte_carlo_reproducible), NULL) AS significance,
122121
COUNT(DISTINCT gaqd.detector_id) - COUNT(DISTINCT qcf.id) AS undefined_quality_periods_count,
123122
GROUP_CONCAT( DISTINCT qcfv.flag_id ) AS verified_flags_list,
124123
GROUP_CONCAT( DISTINCT qcfep.flag_id ) AS flags_list
@@ -154,7 +153,7 @@ class QcFlagRepository extends Repository {
154153
qc_flag_block_significance_coverage(gaq.significance, coverage_ratio, 'bad') AS bad_coverage,
155154
qc_flag_block_significance_coverage(gaq.significance, coverage_ratio, 'mcr') AS mcr_coverage,
156155
qc_flag_block_significance_coverage(gaq.significance, coverage_ratio, 'good') AS good_coverage,
157-
SUM(coverage_ratio) AS total_coverage,
156+
SUM(IF(gaq.significance IS NOT NULL, coverage_ratio, 0)) AS total_coverage,
158157
SUM(undefined_quality_periods_count) AS undefined_quality_periods_count,
159158
GROUP_CONCAT(verified_flags_list) AS verified_flags_list,
160159
GROUP_CONCAT(flags_list) AS flags_list

0 commit comments

Comments
 (0)