在单个sql语句中获取多个输出

时间:2018-08-27 16:52:33

标签: mysql

我正在使用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。我看了一些交叉表查询示例,但无法弄清楚如何使用它们。

0 个答案:

没有答案