可以使用 MySQL 的 GROUP BY 语句来统计订单各个状态的数量。假设订单状态存储在 status 字段中,订单数据存储在 orders 表中,可以使用以下 SQL 语句:
```
SELECT status, COUNT(*) AS count
FROM orders
GROUP BY status;
```
以上 SQL 语句会返回一个包含 status 和 count 两个字段的结果集,其中 status 列包含不同的订单状态,count 列包含每种状态对应的订单数量。
如果需要按照状态名称而不是状态代码进行分组,可以使用 CASE WHEN 语句将状态代码转换为状态名称,例如:
```
SELECT
CASE status
WHEN 1 THEN '待付款'
WHEN 2 THEN '已付款'
WHEN 3 THEN '已发货'
WHEN 4 THEN '已完成'
ELSE '未知状态'
END AS status_name,
COUNT(*) AS count
FROM orders
GROUP BY status;
```
以上 SQL 语句会将 status 列中的状态代码转换为对应的状态名称,并按照状态名称进行分组,返回每种状态对应的订单数量。