No puedes hacerlo en una sola consulta. Deberías crear dinámicamente (en la aplicación que la invoca) una consulta con X selects unidos por cláusulas UNION, tantos SELECT como conjuntos distintos tengas.
Código SQL:
Ver originalSELECT a, b, c, d FROM tabla1 WHERE a = 'w' LIMIT X1
UNION
SELECT a, b, c, d FROM tabla1 WHERE a = 'x' LIMIT X1
UNION
SELECT a, b, c, d FROM tabla1 WHERE a = 'y' LIMIT X2
UNION
SELECT a, b, c, d FROM tabla1 WHERE a = 'z' LIMIT X3;
De esa forma obtendrías los valores en una sola tabla.
Si además quieres que esa tabla se ordene en base a otro criterio, deberás incluir todo el conjunto en una subconsulta... pero eso es un poquito más complicado.
Esto parece más complicado de lo que es en realidad al momento de codificar.