나는 사용자 그룹을 연령별로 그룹화했습니다.하지만 각 사용자는 국적을 가지고 있으며 사용자의 국적이 미국인 경우 그룹에서 그 값을 원합니다 레코드, 현재 그것이 발견 첫 번째 국적을 것 같다, 내가 어떻게이 쿼리를 작성할 수 있습니까? 할mysql group by 그리고 각 그룹 레코드의 값을 필터링
0
A
답변
0
한 가지 방법은 다음과 같습니다
무엇이하는 일은 GROUP_CONCAT 한 시대의 모든 국적을 결합한 것입니다SELECT *, IF(INSTR(GROUP_CONCAT('--', nationality, '--'), '--US--'),
'US', nationality)
FROM table GROUP BY age;
와 그들 사이의 문자열을 '미국'발견하면, 그것은 '미국'을 반환하고 그렇지 않으면 국적을 반환합니다. 또한 국적의 시작과 끝에 "-"을 추가하여 'US'가 '- US--'가되도록합니다. 당신이 그렇게하지 않았다면, 쿼리는 또한 'US'이라는 연속 된 문자를 포함하는 다른 모든 국적은 미국을 의미한다고 생각할 것입니다. 그러나 '-'문자는 내부적으로 만 사용되며 최종 결과에는 표시되지 않습니다.
편집 :
SELECT * FROM (SELECT * FROM table WHERE nation='US'
UNION
SELECT * FROM table WHERE nation!='US') AS tmp
GROUP BY age;
그래서, 먼저 다음 그의 국적이 미국이 아닌 사람을 선택 그의 국적이 미국을하다 사람을 선택하고 두 결합 : 다른 (청소기하지만 이상) 방법은 내 마음에 와서 사람들의 집합 그래서 당신은 미국과 다른 사람에서 첫 번째 사람이있는 순서로 사람의 테이블을 얻을. 그런 다음 GROUP BY 작업을 해당 테이블에 수행하면 그 나이에 미국인이 적어도 한 명이라면 항상 국적이 부여됩니다. 왜냐하면 항상 그 사람이 먼저 오기 때문입니다.
관련 문제
- 1. MySQL GROUP BY 쿼리 질문
- 2. MySQL : Group by Clause
- 3. 그룹 by mysql 옵션
- 4. 레코드의 속성이 GROUP BY 문의 무언가의 MAX입니까?
- 5. MYSQL SUM GROUP BY
- 6. GROUP BY ORDER BY
- 7. MySQL GROUP BY 및 ORDER BY 질문
- 8. MySQL GROUP BY 환경 설정
- 9. MySQL COUNT(), SUM(), GROUP BY
- 10. MySQL/PHP GROUP BY 일
- 11. by Group by Oracle by
- 12. GROUP없이 GROUP BY
- 13. mySQL-GROUP BY/HAVING을 사용하여 올바른 값을 그룹화하고 반환하는 중
- 14. MySQL GROUP BY NULL 및 비어있는
- 15. 집합 교차 계산을 위해 MySQL GROUP BY/ORDER BY 최적화
- 16. GROUP BY
- 17. MySQL : 총 GROUP BY WITH ROLLUP 호기심
- 18. MySQL - Group By, Max, Inner Join - 문제
- 19. MySQL Select Statement - GROUP BY/UNICY
- 20. MySQL "GROUP BY NULL"은 무엇을합니까?
- 21. Mysql - GROUP BY 템포를 사용하지 않기
- 22. MySQL "GROUP BY"결과가 올바르게 표시됩니다.
- 23. MySQL에서 GROUP BY 결과의 백분율 값을 확인하십시오.
- 24. 스핑크스 GROUP BY
- 25. Django : Group by?
- 26. MySQL COUNT() GROUP BY GROUP BY (월 단위로 여러 항목 구입시 계산)
- 27. Grails createCriteria 그룹 by
- 28. linq group by statement
- 29. linq to group by
- 30. 그룹의 SQL 그룹 by by?
그리고 where 절을 US? – marc
죄송합니다. 처음에는 질문을 이해하지 못했지만 지금은 그랬습니다. 그래서 나는 내 대답을 편집했다. – kynnysmatto