반응형
한정된 수의 고유 값으로 선택
한 열의 고유한 값으로 선택한 청키지를 시도합니다.처음 5개의 구별되는 값에 대해 모든 행을 지정해 주세요.또는 한 열의 다음 5개 값에 대한 모든 행을 지정하십시오.
VBS_DOCUENTION과 같은 표가 있습니다.
PK T_DOCUMENT
1 1
2 1
3 1
4 3
5 3
6 3
7 5
8 5
9 6
10 7
SELECT * FROM VBT_DOCUMENT
WHERE T_DOCUMENT IN (SELECT DISTINCT T_DOCUMENT FROM VBT_DOCUMENT LIMIT 2 OFFSET 2);
그런데 다음 오류가 나타납니다.
1235 - 이 버전의 MariaDB는 아직 'LIMIT & IN / ALL / ANY / SOME 서브쿼리'를 지원하지 않습니다.
PK T_DOCUMENT
7 5
8 5
9 6
FROM 절의 서브쿼리를 사용하여 기본 테이블과 결합합니다.
SELECT t.*
FROM (
SELECT DISTINCT T_DOCUMENT
FROM VBT_DOCUMENT
ORDER BY T_DOCUMENT
LIMIT 2 OFFSET 2
) x
JOIN VBT_DOCUMENT t on t.T_DOCUMENT = x.T_DOCUMENT
결과:
| PK | T_DOCUMENT |
| --- | ---------- |
| 7 | 5 |
| 8 | 5 |
| 9 | 6 |
주의: LIMIT를 사용할 때는 결정론적 ORDER BY 절도 정의해야 합니다.그렇지 않으면 실행 계획에 따라 예기치 않은 결과가 나타날 수 있습니다.
WITH는 MySQL8.0(또는 MariaDB 10.2.1)에서 사용할 수 있습니다.
WITH abc as (SELECT DISTINCT T_DOCUMENT FROM VBS_DOCUMENT LIMIT 2 OFFSET 2)
SELECT * FROM VBS_DOCUMENT WHERE T_DOCUMENT IN (select * from abc);
출력:
# pk, t_document
'7', '5'
'8', '5'
'9', '6'
언급URL : https://stackoverflow.com/questions/57961847/select-by-a-limited-number-of-distinct-values
반응형
'sourcecode' 카테고리의 다른 글
printf의 h와 hh 수식어의 목적은 무엇입니까? (0) | 2022.09.11 |
---|---|
폴더 내용을 삭제하려면 어떻게 해야 합니까? (0) | 2022.09.11 |
어레이를 JNI에서 Java로 되돌리는 방법 (0) | 2022.09.11 |
Node.js(JavaScript)에서 대기하려면 어떻게 해야 합니까?나는 일정 기간 동안 일시 정지할 필요가 있다. (0) | 2022.09.11 |
테스트를 구성하기 위한 PHPUnit 베스트 프랙티스 (0) | 2022.09.11 |