복붙노트

[SQL] 경고 : NULL 값은 아쿠아 데이터 스튜디오에서 집계 또는 다른 SET 연산에 의해 제거

SQL

경고 : NULL 값은 아쿠아 데이터 스튜디오에서 집계 또는 다른 SET 연산에 의해 제거

데이터가 null로, 경고 결과가 표시 될 때 표시가있을 때 나는 문제가있다. 어떻게이 문제를 해결하기 위해? 어떻게 0으로 테이블의 경우 데이터가 널 데이터를 변경할 수 없습니다?

이건 내 코드입니다 : -

SELECT DISTINCT c.username             AS assigner_officer,
                d.description          AS ticketcategory,
                (SELECT Count(closed)
                 FROM   ticket
                 WHERE  assigned_to = c.user_id
                        AND closed IS NOT NULL
                 GROUP  BY assigned_to)closedcases,
                (SELECT Count(closed)
                 FROM   ticket
                 WHERE  assigned_to = c.user_id
                        AND closed IS NULL
                 GROUP  BY assigned_to)opencases
FROM   ticket a
       JOIN ticketlog b
         ON a.ticketid = b.ticketid
       JOIN access c
         ON a.assigned_to = c.user_id
       JOIN ticket_category d
         ON a.cat_code = d.id
       JOIN lookup_department e
         ON a.department_code = e.code 

그 결과는 다음과 같이 나타납니다 -

 Warnings: ---> 
   W (1): Warning: Null value is eliminated by an aggregate or other SET operation.
          <--- 
 assigner_officer     ticketcategory     closedcases     opencases    
 -------------------  -----------------  --------------  ------------ 
 abdulhafiz           Enquiry            (null)          0            
 affan                Enquiry            12              (null)       
 amirul               Enquiry            1               (null)       
 azrul_fahmi          Enquiry            45              0            
 Azwani               Enquiry            (null)          0            
 chai                 Enquiry            4               (null)       
 dalinawati           Enquiry            1               0            
 Emmy                 Complaints         (null)          0            
 Fadhlia              Enquiry            38              0            
 fairulhalif          Others             1               (null)       
 farikh               Enquiry            (null)          0            
 ismailh              Enquiry            28              0            
 izzahanna            Enquiry            (null)          0            
 Kamsuzilawati        Enquiry            1               (null)     

해결법

  1. ==============================

    1.당신은 대부분 UID를 통해 요약 COUNT를 사용하는 것입니다. 따라서

    당신은 대부분 UID를 통해 요약 COUNT를 사용하는 것입니다. 따라서

    COUNT ([UID])는 경고를 생성합니다 :

    카운트 개체가 존재하지 않는 왼쪽 조인과 함께 사용되는 동안.

    그런 다음 전체 결과의 수 (즉, 부모) 존재를 세는 것이 경우에 COUNT (*)를 사용하면 잘못된 결과를 렌더링합니다.

    COUNT ([UID를])를 사용하여 계수하는 유효한 방법이며, 경고는 경고에 지나지 않는다. 당신에 관한 한, 당신은이 경우의 UID의 진정한 수를 얻을하려는 그러나 경우에 당신은 사용할 수 있습니다 :

    SUM(CASE WHEN [uid] IS NULL THEN 0 ELSE 1 END) AS [new_count]
    

    이 쿼리에 오버 헤드를 많이 추가 할 것입니다. (테스트 MSSQL 2008)

  2. ==============================

    2.이 문제를 해결하는 한 가지 방법은 경고를 해제하는 것입니다.

    이 문제를 해결하는 한 가지 방법은 경고를 해제하는 것입니다.

    SET ANSI_WARNINGS OFF;
    GO
    
  3. ==============================

    3.사용 ISNULL (필드, 0) 또한 골재로 사용할 수 있습니다 :

    사용 ISNULL (필드, 0) 또한 골재로 사용할 수 있습니다 :

    ISNULL(count(field), 0)
    

    그러나, 당신은 (*) 계산 계수를 (필드)을 변경하는 것이 좋습니다

    편집하다:

    시험:

    closedcases = ISNULL(
       (select count(closed) from ticket       
        where assigned_to = c.user_id and closed is not null       
        group by assigned_to), 0), 
    
    opencases = ISNULL(
        (select count(closed) from ticket 
         where assigned_to = c.user_id and closed is null 
         group by assigned_to), 0),
    
  4. ==============================

    4.당신은하지 외부 COUNT 함수의 ISNULL의 내부를 넣을 :

    당신은하지 외부 COUNT 함수의 ISNULL의 내부를 넣을 :

    하지 GOOD : ISNULL (COUNT (필드), 0)

    GOOD : COUNT (ISNULL (필드, 0))

  5. ==============================

    5.이 오류를 얻고 있었다; 난 그냥 카운트 절에서 사용 된 필드의 WHERE 절을했습니다. 이 문제를 해결했다. 참고 : 그 개수에서 제외로 널 (null) 값의 존재는, 보고서에 대한 임계 여부를 확인합니다.

    이 오류를 얻고 있었다; 난 그냥 카운트 절에서 사용 된 필드의 WHERE 절을했습니다. 이 문제를 해결했다. 참고 : 그 개수에서 제외로 널 (null) 값의 존재는, 보고서에 대한 임계 여부를 확인합니다.

    올드 쿼리 :

    select city, Count(Emp_ID) as Emp_Count 
    from Emp_DB
    group by city
    

    새로운 쿼리 :

    select city, Count(Emp_ID) as Emp_Count 
    from Emp_DB
    where Emp_ID is not null
    group by city
    
  6. ==============================

    6.에 null 값이 집계 함수 내부에 존재하는 경우에 당신은이 문제에 직면하게 될 것이다. 대신에 아래의 코드

    에 null 값이 집계 함수 내부에 존재하는 경우에 당신은이 문제에 직면하게 될 것이다. 대신에 아래의 코드

     SELECT Count(closed)
      FROM   ticket
      WHERE  assigned_to = c.user_id
      AND closed IS NULL
    

    같은 사용

    SELECT Count(ISNULL(closed, 0))
      FROM   ticket
      WHERE  assigned_to = c.user_id
      AND closed IS NULL
    
  7. from https://stackoverflow.com/questions/11384292/warning-null-value-is-eliminated-by-an-aggregate-or-other-set-operation-in-aqua by cc-by-sa and MIT license