我正在使用3条select语句从同一张表中获得2个计数和平均值。我想用我选择的列名在1个输出中返回所有3个结果。我尝试了UNION和UNION ALL,这确实将它们放在单个输出中。但是,不是我要的3列格式。
SET @ClientID = '3685';
SELECT COUNT(*) AS RecCount FROM assessment_result
WHERE assessment_result.passed = TRUE
AND assessment_result.`assessment_status` = 'Completed'
AND assessment_result.`client_id` = @ClientID
AND assessment_result.`completed_date` >= CURDATE() - INTERVAL 30 DAY
UNION ALL
SELECT COUNT(*) AS TotalCount FROM assessment_result
WHERE assessment_result.`assessment_status` = 'Completed'
AND assessment_result.`client_id` = @ClientID
AND assessment_result.`completed_date` >= CURDATE() - INTERVAL 30 DAY
UNION ALL
SELECT AVG(ar.`passed` = TRUE) FROM assessment_result ar
WHERE ar.`assessment_status` = 'Completed'
AND ar.`client_id` = @ClientID
AND ar.`completed_date` >= CURDATE() - INTERVAL 30 DAY;
我希望结果具有3列,即RecCount,TotalCount和AverageRec。我看了一些交叉表查询示例,但无法弄清楚如何使用它们。