MySQL запрос для подсчета результатов больше 10, затем группировать по - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть таблица MySQL с именем water_test . В этой таблице у меня есть id , провинция и sample_result .

| id | province | sample_result |
| 1  | prov_1   | 3             |
| 2  | prov_2   | 12            |
| 3  | prov_3   | 45            |
| 4  | prov_4   | 7             |
| 5  | prov_2   | 8             |
| 6  | prov_2   | 76            |
| 7  | prov_3   | 32            |
| 8  | prov_1   | 5             |
| 9  | prov_1   | 99            |
| 10 | prov_4   | 67            |
| 11 | prov_2   | 4             |

. Я бы хотел, чтобы все sample_results были больше чем 10 для каждой провинции.

Результат запроса должен выглядеть следующим образом ...

| province | count |
| prov_1   | 1     |
| prov_2   | 2     |
| prov_3   | 2     |
| prov_4   | 1     |

Как бы вы express это сделали в запросе MySQL? Я думал о GROUP BY и HAVING COUNT и пытался это ...

SELECT sample_result
  FROM water_test
 GROUP BY province
HAVING COUNT(sample_result) > 10;

, но для этого запроса не удается выполнить (ошибка 1055).

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Вы можете фильтровать, а затем агрегировать:

select province, count(*)
from mytable
where sample_result > 10
group by province
2 голосов
/ 25 февраля 2020

Условно суммировать можно вот так

SELECT province, sum(sample_result > 10) as count
FROM water_test
GROUP BY province
...