我有一个名为water_test的MySQL表。在此表中,我有id,province和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 |
我想为每个省找到大于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)。
您可以过滤,然后聚合:
select province, count(*)
from mytable
where sample_result > 10
group by province
您可以像这样有条件地求和
SELECT province, sum(sample_result > 10) as count
FROM water_test
GROUP BY province