MySQL查询以对大于10的结果进行计数,然后分组依据

问题描述 投票:0回答:2

我有一个名为water_test的MySQL表。在此表中,我有idprovincesample_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             |

我想为每个省找到大于10的所有sample_results。

查询结果应如下所示...

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

您将如何在MySQL查询中表达这一点?我当时在想GROUP BY并且有COUNT个,并尝试过...

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

但是此查询无法运行(错误1055)。

mysql sql group-by count having
2个回答
1
投票

您可以过滤,然后聚合:

select province, count(*)
from mytable
where sample_result > 10
group by province

0
投票

您可以像这样有条件地求和

SELECT province, sum(sample_result > 10) as count
FROM water_test
GROUP BY province
© www.soinside.com 2019 - 2024. All rights reserved.