각 사용자의 가장 높은 group_id를 고유한 값으로 계산합니다.
P粉237125700
P粉237125700 2024-01-16 17:59:12
0
1
349

내 최근 프로젝트에는 (적어도 나에게는) 까다로운 논리가 있어서 이를 해결하기 위해 HAVING를 사용하려고 노력했지만 모든 연극에서 잘못된 결과가 나왔습니다.

사용자를 사용자 그룹에 할당하는 연결 테이블과 각 그룹에 몇 명의 사용자가 있는지 기록하는 또 다른 테이블이 있으므로 계속해서 셀 필요가 없습니다. (두 번째 테이블은 사용자 등록이 완료되면 업데이트됩니다.)

제가 겪고 있는 문제는 두 번째 테이블의 숫자를 업데이트하는 기능에 있습니다.

연결된 테이블은 다음과 같으며 내 문제를 설명하는 샘플 데이터는 다음과 같습니다.

으아아아

사용자는 여러 그룹에 속할 수 있습니다. 실제로 그룹이 되려면 사용자는 그 아래의 모든 그룹에 속해야 합니다. 이는 각 그룹에 특정 권한이 할당되기 때문입니다. 이는 현재 애플리케이션을 대대적으로 다시 작성하지 않고는 변경할 수 없습니다.

내가 원하는 것은 각 사용자에 대해 가장 높은 그룹만 계산하는 것이므로 위의 예제 데이터에서 사용자 1은 그룹 5에만 계산되고 그룹 1은 비어 있는 것처럼 보입니다.

현재는 모든 항목이 집계되는데, 즉 그룹 4에 3명이 있으면 그 3명의 사용자도 그룹 3, 2, 1에도 집계되므로 내 숫자는 상대적으로 의미가 없습니다.

지금까지 다음과 같은 몇 가지 변형을 시도했습니다.

으아아아

이것은 나에게도 같은 번호를 제공합니다. 그런 다음 시도해 보았습니다.

으아아아

하지만 지금은 다른 그룹에 속해 있지 않은 사용자에게만 질문을 하는 것으로 알고 있습니다.

제가 올바른 길을 가고 있는 것 같은 느낌이 들지만, 어디에, 어떤 조건이 있어야 하는지 모르겠습니다. 유사한 흐름에 대한 몇 가지 예제 쿼리를 보았지만 모든 별칭은 혼란을 가중시킬 뿐입니다.

누군가 나에게 올바른 방향을 알려줄 수 있나요?

P粉237125700
P粉237125700

모든 응답(1)
P粉431220279

집계를 사용하여 각 사용자가 계산할 수 있는 최대 group_idCOUNT() 窗口函数来对每个返回的最大 group_id > 사용자 수:

를 얻을 수 있습니다. 으아악

이 쿼리는 구성원이 없는 모든 group_id을 필터링합니다.

모든 group_id的结果,请使用表groupsLEFT에 대한 결과를 원하는 경우 테이블 groupsLEFT를 사용하여 위 쿼리에 연결하세요.

으아악

간단한 데모를 확인하세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!