SQL의 특정 열 값과 고유 ID 열을 기반으로 행을 선택하고 싶습니다.
내가 가진 테이블은 다음과 같습니다
Acc_id | Name | Status | value
----------------------------------------
101 | com | Active | 1
202 | net | Active | 2
202 | net | New | 3
303 | com | Active | 1
303 | com | New | 4
303 | com | Inactive | 2
404 | org | Active | 5
404 | org | Inactive | 6
505 | gov | New | 2
505 | gov | Active | 3
결과적으로 다음 표를 갖고 싶습니다.
Acc_id | Name | Status | value
----------------------------------------
202 | net | Active | 2
202 | net | New | 3
303 | com | Active | 1
303 | com | New | 4
505 | gov | New | 2
505 | gov | Active | 3
위에서 볼 수 있듯이 '상태'열이있는 'Acc_id'열의 동일한 ID에 대해 "신규"및 "활성"만 선택되었습니다.
이 시도:
SELECT
t1.*
FROM table1 AS t1
INNER JOIN
(
SELECT Acc_id
FROM table1
WHERE status IN('Active', 'New')
GROUP BY Acc_id
HAVING COUNT(DISTINCT status) = 2
) AS t2 ON t1.Acc_id = t2.Acc_id
WHERE t1.status IN('Active', 'New');
HAVING COUNT(DISTINCT status) = 2
와 함께 WHERE status IN('Active', 'New')
선택이 보장됩니다 Acc_id
두 상태가 없다 active
하고 new
더 이상 다음, JOIN
원래의 테이블과 컬럼의 결과를 얻을 수 있습니다.
이것은 당신에게 줄 것입니다 :
| ACC_ID | NAME | STATUS | VALUE |
|--------|------|--------|-------|
| 202 | net | Active | 2 |
| 202 | net | New | 3 |
| 303 | com | Active | 1 |
| 303 | com | New | 4 |
| 505 | gov | New | 2 |
| 505 | gov | Active | 3 |
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다