조건이 다른 동일한 테이블에서 데이터를 얻고 싶습니다. 나는 안드로이드 스튜디오에서 sqlite를 사용하고 있습니다.
**ID Name Role**
1 Emma Manager
2 Olivia Manager
3 Ava Manager
4 Isabella Sales officer
5 Sophia Sales Officer
6 Charlotte Sales Officer
7 Mia Clerk
8 Amelia Clerk
이 표를 가정 해 보겠습니다. 역할 유형이 다르고 역할에 참여하는 사람 수가 다릅니다. 각 역할에서 2 명을 선택하고 싶습니다.
Select * from employeeTable where role = 'Manager' LIMIT 2
Select * from employeeTable where role = 'Sales officer' LIMIT 2
Select * from employeeTable where role = 'Clerk' LIMIT 2
이 세 가지 쿼리의 결과를 결합하고 싶습니다. 유치한 질문이라면 죄송합니다. 그리고 미리 감사드립니다
와 row_number()
윈도우 함수 :
select t.id, t.name, t.role
from (
select *, row_number() over (partition by role) rn
from employeeTable
) t
where t.rn <= 2
다음을 정의 할 수도 있습니다.
partition by role order by name
또는:
partition by role order by id
대신 :
partition by role
결과에서 특정 행을 가져옵니다. 데모를
참조하십시오 . 결과 :
| ID | Name | Role |
| --- | -------- | ------------- |
| 7 | Mia | Clerk |
| 8 | Amelia | Clerk |
| 1 | Emma | Manager |
| 2 | Olivia | Manager |
| 4 | Isabella | Sales Officer |
| 5 | Sophia | Sales Officer |
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다