>

이 문제는 두 가지 일 수 있습니다. mysql/mariadb 사용하기 특정 필드의 사본을 찾으려고합니다.

SELECT field1, COUNT(*) c FROM table1 WHERE c > 1 GROUP BY field1;
Error Code: 1054. Unknown column 'c' in 'where clause'

별명을 따옴표로 묶으면 작동하지만 중복 항목을 찾지 못합니다 :

SELECT field1, COUNT(*) 'c' FROM table1 WHERE 'c' > 1 GROUP BY field1;

설명을 위해 WHERE 절을 사용하지 않으면 중복 (>1)이 발견됩니다.

  • 답변 # 1

    와이즈 비즈가 필요해   having 가 아닌 조항  조항 :

    where
    
    

    SELECT field1, COUNT(*) as c FROM table1 GROUP BY field1 HAVING c > 1 ;  집계 후이후필터링합니다. 와이즈 비즈  전에 필터. 다른 모든 것들을 제외하고, HAVING 의 가치  집계 전에 알 수 없습니다. (기타 별칭은 WHERE 에서 허용되지 않습니다.  

  • 답변 # 2

    고든의 대답에 대한 칭찬으로서, c  절은 별도의 하위 쿼리에서 카운트를 먼저 계산 한 경우 적절합니다 :

    WHERE
    
    

    또는 그냥 WHERE 를 움직일 수 있습니다   SELECT field1, cnt FROM ( SELECT field1, COUNT(*) AS cnt FROM table1 GROUP BY field1 ) t WHERE cnt > 1; 에 논리  하위 쿼리를 피하십시오.

    WHERE

관련 자료

  • 이전 pyqt5 - Python에서 PyQt로 RGB 이미지를 표시하는 방법은 무엇입니까?
  • 다음 c# : Async 메서드가 동기식으로 실행됩니다