반응형
mysql에서 구별되는 2개의 열 조합 선택
다음과 같은 mysql 테이블이 있습니다.
1 value1 value2 3534
2 value1 value1 8456
3 value1 value2 3566
4 value1 value3 7345
5 value2 value3 6734
2열과 3열이 구별되는 모든 행을 선택하기 위한 쿼리가 필요합니다. 예를 들어 이 예제에서 원하는 출력은 다음과 같습니다.
1 value1 value2 3534
2 value1 value1 8456
4 value1 value3 7345
5 value2 value3 6734
방법에 대한 샘플을 몇 개 찾았는데 모두 개별적으로 열에 따라 다르게 선택합니다.
업데이트 1
이것을 위에 대고 사용하는 것이 좋습니다.
SELECT id, col2, col3, col4
FROM yourtable
GROUP BY col2, col3;
데모
제가 말하는 이유는 CONCAT를 사용하면 이 경우 원하는 결과가 나오지 않기 때문입니다.첫번째 쿼리는 나에게 5개의 행을 반환하지만 CONCAT는 나에게 4개의 행을 반환하는데 이는 부정확합니다.
당신이 내 말을 이해하길 바랍니다.
표의 열이 (id, col2, col3, col4)라고 가정합니다.
SELECT DISTINCT(CONCAT(col2, col3)) as "dummy column", id, col2, col3, col4
FROM yourtable
GROUP BY CONCAT(col2, col3);
오어
SELECT id, col2, col3, MIN(col4)
FROM yourtable
GROUP BY col2, col3;
살아있는 실제 사례
첫 번째 열이 고유하다고 가정하면 다음 작업을 수행할 수 있습니다.
SELECT id, col2, col3, col4
FROM yourtable
WHERE id IN
(
SELECT MIN(id)
FROM yourtable
GROUP BY col2, col3
)
온라인으로 작동하는 보기: sqlfiddle
표의 열이 다음과 같다고 가정합니다.(id, col1, col2, col3)
, 할 수 있습니다.
SELECT *
FROM YourTable yt
JOIN (
SELECT MIN(id) as minid
FROM YourTable
GROUP BY
col1, col2
) filter
ON filter.minid = yt.id
이 쿼리는 컬럼 1과 컬럼 2의 조합이 고유한지 확인하는 동시에 컬럼 3의 최소값을 선택합니다.
SELECT col1, col2, MIN(col3)
FROM yourTable
GROUP BY col1, col2
이에 대한 가장 간단한 질문은
SELECT col1, col2, MIN(col3)
FROM myTable
GROUP BY col1, col2
메서드별 그룹을 사용하면 추가 행이 반환됩니다. 각 필드를 명시적으로 확인하는 경우 카운트와 동일한 수의 레코드를 반환합니다(Distinct..).
SELECT id, col2, col3, col4
FROM yourtable yt
WHERE id =
(
SELECT MIN(id)
FROM yourtable yt1
WHERE yt.col2 = yt1.col2
AND yt.col3 = yt1.col3
)
언급URL : https://stackoverflow.com/questions/11277251/selecting-distinct-2-columns-combination-in-mysql
반응형
'programing' 카테고리의 다른 글
워드프레스에서 분류법 또는 사용자 정의 필드를 동시에 조회하려면 어떻게 해야 합니까? (0) | 2023.11.06 |
---|---|
jQuery에서 Grep vs 필터? (0) | 2023.11.06 |
저장 프로시저의 변수에 선택 할당 (0) | 2023.11.06 |
MySQL/MariaDB 커넥터를 배포하는 것과 모듈로 추가하는 것의 차이점은 무엇입니까? (0) | 2023.11.01 |
백슬래시 탈출 끈을 푸는 방법? (0) | 2023.11.01 |