[SQL] MySQL의에서 동일한 열 값이 행을 반환하는 방법
SQLMySQL의에서 동일한 열 값이 행을 반환하는 방법
다음 테이블 -을 고려하자
ID Score
1 95
2 100
3 88
4 100
5 73
나는 총 SQL 멍청한 놈을 모르지만, 내가 어떻게 점수가 모두 ID가 2와 4를 특징으로 반환합니까? 그것 모두 ID 2, 4에 등장 이후 100을 반환해야합니다 그래서
해결법
-
==============================
1.이것은 "세트 - 내 - 세트"쿼리의 예입니다. 그것은 가장 유연한 접근 방식 때문에, HAVING 절에 집계를 권장합니다.
이것은 "세트 - 내 - 세트"쿼리의 예입니다. 그것은 가장 유연한 접근 방식 때문에, HAVING 절에 집계를 권장합니다.
select score from t group by score having sum(id = 2) > 0 and -- has id = 2 sum(id = 4) > 0 -- has id = 4
이것이하는 일은 점수로 집계합니다. 그런 다음 HAVING 절 (합계 (ID = 2))의 첫 번째 부분은 "2"의 점수 당 얼마나 많은 카운트 업된다. 두 번째는 얼마나 많은 "4"의를 기대하고있다. 는 "2"및 "4"에 있습니다 만 점수가 반환됩니다.
-
==============================
2.
SELECT score FROM t WHERE id in (2, 4) HAVING COUNT(*) = 2 /* replace this with the number of IDs */
이 선택 ID 2 HAVING 절은 우리가 두 개의 행을 발견되도록 제와 행; 하나가 누락 된 경우, 카운트 미만이 될 것입니다.
이 ID는 고유 한 열임을 가정합니다.
-
==============================
3.
select Score from tbl a where a.ID = 2 -- based off Score with ID = 2 --include Score only if it exists with ID 6 also and exists ( select 1 from tbl b where b.Score = a.Score and b.ID = 6 ) -- optional? ignore Score that exists with other ids as well and not exists ( select 1 from tbl c where c.Score = a.Score and c.ID not in (2, 6) )
from https://stackoverflow.com/questions/16704290/how-to-return-rows-that-have-the-same-column-values-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 는 SQL 서버에서 어떻게 물건과 'XML 경로에 대한'작업 (0) | 2020.03.07 |
---|---|
[SQL] 요소 번호의 PostgreSQL unnest () (0) | 2020.03.07 |
[SQL] 최대 절전 모드를 사용하는 경우 어떻게 매개 변수 값을 쿼리 문자열을 인쇄 (0) | 2020.03.07 |
[SQL] 변수로 테이블 이름 (0) | 2020.03.07 |
[SQL] 사람이 읽을 수있는 설명에서 SQL 쿼리를 구성하는 엄지 손가락의 규칙이 있나요? (0) | 2020.03.07 |