MySQL 데이터로 원형 차트를 그려야합니다. 첫 번째 n 행을 검색하고 나머지는 그룹화해야합니다.
첫 번째 쿼리가 이미 그룹화되어있는 것이 문제입니다. MySQL은 첫 번째 n 개의 행을 반환하고 나머지는 그룹화합니다.
SELECT name AS especie, SUM(superficie) AS superficie
FROM ciclos
JOIN cultivos ON id_cultivo = idcultivo
JOIN tbl_especies ON id_especie = idespecie
WHERE fecha_cierre IS NULL
GROUP BY id_especie
ORDER BY superficie DESC
이
내가 무엇을 얻을 수 있습니다 :+------------+------------+
| Especie | Superficie |
+------------+------------+
| Avena | 50.0000 |
| Centeno | 32.4000 |
| Trigo | 18.0000 |
| Almendros | 5.1100 |
| Olivos | 4.7000 |
| Vid | 1.8300 |
| Nogal | 0.3500 |
| Cerezo | 0.2500 |
+------------+------------+
그리고 이것은 내가 필요한 것입니다 :
이 경우+------------+------------+
| Especie | Superficie |
+------------+------------+
| Avena | 50.0000 |
| Centeno | 32.4000 |
| Trigo | 18.0000 |
| Almendros | 5.1100 |
| Rest | 7.1300 |
+------------+------------+
, 나는 처음 4 행과 그룹에 나머지를 검색해야 .
하나의 검색어로이를 해결할 수있는 방법이 있습니까?
응답 해 주셔서 감사합니다. 쿼리를 이해하지만 구문 오류가 발생했습니다 : "@rn : = 0) const WHERE ..."및 이유를 모르겠습니다. –
CROSS JOIN : CROSS JOIN (SELECT @rn : = 0) const 내에 "SELECT"가 누락되었습니다. 이제 문제는 처음 4 행을 얻지 만 "슈퍼 피시 (superficie)"에 의한 주문이 아니라는 것입니다. 사실, 내가 필요로하는 것은 "Superficie"가 4보다 낮은 모든 "Especies"를 그룹화하는 것입니다. –