mysql不使用子查询,查每种类型的数量和总量的占比
时间: 2024-10-25 15:06:21 浏览: 24
如何使用MySQL查询某个列中相同值的数量统计
在MySQL中,如果你想获取不同类型的数量以及它们在整个数据集中的占比,而不使用子查询,你可以通过JOIN操作和GROUP BY语句结合使用窗口函数来实现。假设有一个名为`types`的表,其中包含`type_id`和`item_count`字段,表示不同类型的数量。可以尝试以下SQL查询:
```sql
SELECT
t.type_id,
t.item_count AS type_count,
t.item_count * 100.0 / SUM(t.item_count) OVER() AS percentage
FROM
types t
GROUP BY
t.type_id;
```
这个查询做了以下几件事:
1. `GROUP BY t.type_id`: 按照类型分组,计算每个类型的数量(`item_count`)。
2. `t.item_count AS type_count`: 显示每个类型的原始数量。
3. `t.item_count * 100.0 / SUM(t.item_count) OVER() AS percentage`: 计算每个类型的数量占总数量的比例,`OVER()`用于对整个表进行累计求和。
阅读全文