mysql count 分别统计状态为1和2的数量
时间: 2023-02-07 12:50:49 浏览: 120
你可以使用下面的语句来统计状态为 1 和 2 的数量:
```
SELECT
COUNT(CASE WHEN status = 1 THEN 1 END) as status_1_count,
COUNT(CASE WHEN status = 2 THEN 1 END) as status_2_count
FROM
your_table
```
这个语句使用了 MySQL 的 `COUNT` 函数和 `CASE` 语句。`CASE` 语句会根据条件分别统计状态为 1 和 2 的记录数。
相关问题
mysql count 状态为1和2的数量
您可以使用下面的 MySQL 查询来统计状态为 1 和 2 的数量:
```
SELECT COUNT(*)
FROM table_name
WHERE status IN (1, 2);
```
其中,`table_name` 是你要查询的表的名称,`status` 是你要统计的状态列的名称。
请注意,上述查询将返回状态为 1 或 2 的行的数量。如果您希望统计状态为 1 和 2 的行的数量之和,则可以使用下面的查询:
```
SELECT SUM(status = 1) + SUM(status = 2)
FROM table_name;
```
这将返回状态为 1 和 2 的行的数量之和。
mysql case when 条件统计
你可以使用 MySQL 中的 CASE WHEN 语句进行条件统计。该语句可以根据指定的条件对数据进行分类,并进行相应的计数。
以下是一个示例,假设你有一个名为 "orders" 的表,其中包含了订单信息:
```
CREATE TABLE orders (
order_id INT,
order_date DATE,
order_status VARCHAR(10)
);
INSERT INTO orders (order_id, order_date, order_status)
VALUES (1, '2021-01-01', 'completed'),
(2, '2021-01-02', 'completed'),
(3, '2021-01-03', 'cancelled'),
(4, '2021-01-04', 'completed'),
(5, '2021-01-05', 'cancelled');
```
现在,假设你想要统计不同订单状态的数量,并按照订单状态进行分组,你可以使用 CASE WHEN 语句来实现:
```
SELECT
order_status,
COUNT(*) AS count
FROM
orders
GROUP BY
order_status;
```
以上查询将返回一个结果集,包含两列:order_status(订单状态)和 count(数量)。结果如下:
```
order_status | count
---------------------
completed | 3
cancelled | 2
```
这样,你就可以根据不同的条件使用 CASE WHEN 语句进行统计。希望对你有所帮助!如果还有其他问题,请继续提问。