1

現時点で私はこれを持っています

SELECT
    COUNT (enrollment_id) AS enrollments,
    COUNT (result) AS 
    MAX (result) AS highest_result,
    AVG (result) AS average_result,
    MIN (period_code) AS earliest_enrollment    
FROM 
    enrollment
WHERE
result IS NULL  

私が欲しいのは、合計での登録数COUNT(enrollment_id)です。次に、結果列の値の数を数えて、NULLの列を取得しますunfinalised_enrollments

下部のWHERE句はSELECT、結果列を使用する他のステートメントに影響しますか?NULLもしそうなら、結果列の値の数だけを数え、それを。という列に表示できるようにするにはどうすればよいですかunfinalised_enrollment

前もって感謝します。

4

3 に答える 3

2

SUM代わりに使用できますCOUNT

SELECT
    COUNT (enrollment_id) AS enrollments,
    SUM (CASE WHEN result IS NULL THEN 1 ELSE 0 END) AS null_results,
    MAX (result) AS highest_result,
    AVG (result) AS average_result,
    MIN (period_code) AS earliest_enrollment    
FROM enrollment    
于 2012-06-02T12:18:59.790 に答える
0

これはあなたが探していることを達成するはずです:

SELECT
    COUNT (enrollment_id) AS enrollments,
    ( SELECT COUNT (result) FROM enrollment WHERE result IS NULL ) AS unfinalised_enrollment,
    MAX (result) AS highest_result,
    AVG (result) AS average_result,
    MIN (period_code) AS earliest_enrollment    
FROM 
    enrollment;
于 2012-06-02T12:29:32.370 に答える
0

あなたが使用することができます:

SELECT
    COUNT (enrollment_id) AS enrollments,
    Count(*) - Count(result) AS null_results,
    MAX (result) AS highest_result,
    AVG (result) AS average_result,
    MIN (period_code) AS earliest_enrollment    
FROM enrollment   

Count(*)行の総数をカウントします。Count(result)enter code hereは、結果がnullでない行の総数をカウントします。

于 2012-06-02T12:37:02.993 に答える