2014-11-18 3 views
0

아래 쿼리에서 현재 작업 A 또는 B 중 하나가 무작위로 50 개의 레코드 중에서 선택됩니다. 관심 대상은이 값을 얻기 위해 수정할 수 있는지 여부입니다 50 개의 기록을 무작위로 뽑아서 A와 B가 같은 양의 사람들이 똑같이 선택되도록한다.SQL 쿼리 : 두 그룹에서 같은 양을 선택하십시오.

단일 쿼리 내에서 가능합니까?

"SELECT x, y, FROM table WHERE (job = 'A' OR job = 'B') ORDER BY RAND() LIMIT 50" 

모든 도움/방향에 대해 감사드립니다. 당신도 당신이

+0

각 그룹에 25 개 이상의 레코드가 있습니까? 이 단계에서 –

+0

예. 한계 자체는 다양 할 것이고, 각 그룹에 충분한 것을 가지고 있지 않다면 내가 말할 수있는 것으로부터, 그룹 B가 단지 위의 예에서 10을 가졌다면, 그 그룹에 더 이상 남아있는 레코드가 없을 때 멈추게 될 것입니다 25-10을 나눌 것입니다. 이것은 그 목적을 위해 좋습니다. – nat1707828

답변

3

하나의 옵션이 노조에게

를 사용하는 등보다 크거나 같은 예로 이동하고 ''와 '동일'의 키워드로 찾기 위해 시도하는 것처럼 검색을 시작합니다 어디 확실 해요
(SELECT x, y, FROM table WHERE job = 'A' 
ORDER BY RAND() LIMIT 25) 
UNION 
(SELECT x, y, FROM table WHERE job = 'B' 
ORDER BY RAND() LIMIT 25) 
+0

괄호 추가 http://stackoverflow.com/a/1415380/1745672 – Mihai

+0

@Mihai, 감사 정보에 ​​대한, 업데이트 됨 – radar

관련 문제