表中有 样品字段,和状态字段,按样品字段分组,统计状态为未完成的个数以及总数
时间: 2024-09-11 20:08:27 浏览: 36
sum(case when then)(判断男女生的个数)
在数据库中,通常使用SQL语句来实现这种分组统计的需求。这里假设我们有一个名为`samples`的表,其中包含`sample`字段表示样品名称,以及`status`字段表示状态。如果我们想要按照`sample`字段进行分组,并统计每个样品中`status`为'未完成'的记录数以及每组的总记录数,可以使用以下SQL查询语句:
```sql
SELECT
sample,
SUM(CASE WHEN status = '未完成' THEN 1 ELSE 0 END) AS unfinished_count,
COUNT(*) AS total_count
FROM
samples
GROUP BY
sample;
```
这个查询的含义如下:
- `SUM(CASE WHEN status = '未完成' THEN 1 ELSE 0 END)`:这部分是一个条件求和操作,当`status`字段的值为'未完成'时,计为1,否则计为0。通过对这些值求和,我们可以得到每个样品中'未完成'状态的个数。
- `COUNT(*)`:这是一个计数操作,会计算当前分组中的所有记录数,也就是每个样品的总数。
- `GROUP BY sample`:这个语句用于指定按照`sample`字段进行分组。
执行上述查询后,你将得到每个样品的名称、未完成的个数以及每个样品的总数。
阅读全文