MySQL 查询统计大于 10 的结果然后分组
MySQL query to count results greater than 10 then group by
我有一个名为 water_test 的 MySQL table。在这个 table 中,我有一个 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 |
我想找出每个省的所有 sample_result 大于 10 的值。
查询结果应该是这样的...
| province | count |
| prov_1 | 1 |
| prov_2 | 2 |
| prov_3 | 2 |
| prov_4 | 1 |
您如何在 MySQL 查询中表达这一点?我在考虑 GROUP BY 和 HAVING 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
我有一个名为 water_test 的 MySQL table。在这个 table 中,我有一个 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 |
我想找出每个省的所有 sample_result 大于 10 的值。
查询结果应该是这样的...
| province | count |
| prov_1 | 1 |
| prov_2 | 2 |
| prov_3 | 2 |
| prov_4 | 1 |
您如何在 MySQL 查询中表达这一点?我在考虑 GROUP BY 和 HAVING 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