복붙노트

[SQL] 비 "독특한"행을 선택하는 방법

SQL

비 "독특한"행을 선택하는 방법

난 내가 아닌 고유 한 행을 인출 할 필요가있는 다음 표를 가지고

+------+------+------+
| id   | idA  |infos |
+----- +------+------+
| 0    | 201  | 1899 |
| 1    | 205  | 1955 |
| 2    | 207  | 1955 |
| 3    | 201  | 1959 |
+------+------+------+

나는 적어도 두 개의 행에 동일한 IDA 값이 열 infos에 대한 모든 행을 가져올 싶습니다.

위의 표에 대한 쿼리의 출력해야합니다

infos
1899
1959 

나는 성공없이 다음과 같은 요청을 시도했다 :

해결법

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

    1.이 시도:

    이 시도:

    SELECT T1.idA, T1.infos
    FROM XXX T1
    JOIN
    (
        SELECT idA
        FROM XXX
        GROUP BY idA
        HAVING COUNT(*) >= 2
    ) T2
    ON T1.idA = T2.idA
    

    당신이 게시 된 데이터에 대한 결과 :

    idaA  infos
    201   1899
    201   1959
    
  2. ==============================

    2.이런 식으로 뭔가 작업을해야합니다 :

    이런 식으로 뭔가 작업을해야합니다 :

    SELECT idA, COUNT(*) FROM XXX GROUP BY idA HAVING COUNT(*) > 1
    
  3. ==============================

    3.

    SELECT id, idA, COUNT(infos) AS cnt
    FROM mytable
    GROUP BY infos
    HAVING cnt > 1
    
  4. ==============================

    4.이것은 당신이 찾고있는 아마 :

    이것은 당신이 찾고있는 아마 :

    SELECT *, COUNT(DISTINCT infos) FROM table GROUP BY idA HAVING COUNT(DISTINCT infos) > 1;
    
  5. ==============================

    5.이 "정보를 정기적으로는"정확히 한 번 (MySQL을 테스트) 나타나는 모든 행을 제공해야

    이 "정보를 정기적으로는"정확히 한 번 (MySQL을 테스트) 나타나는 모든 행을 제공해야

    SELECT id, idA, count(infos) AS cnt
    FROM mytable
    GROUP BY infos
    HAVING cnt=1
    

    데이터

    id  ida     infos
    1   201     1955
    2   202     1978
    3   203     1978
    4   204     1956
    5   0   1980
    

    결과

    id  idA     cnt
    1   201     1
    4   204     1
    5   0   1
    
  6. from https://stackoverflow.com/questions/4519582/how-to-select-non-unique-rows by cc-by-sa and MIT license