在 SQL 中,您可以使用 COUNT
和 CASE
语句结合来实现多条件统计
SELECT
COUNT(CASE WHEN condition1 THEN 1 ELSE NULL END) AS count_condition1,
COUNT(CASE WHEN condition2 THEN 1 ELSE NULL END) AS count_condition2,
COUNT(CASE WHEN condition3 THEN 1 ELSE NULL END) AS count_condition3
FROM
your_table;
请将 your_table
替换为您的表名,并根据需要更改条件(condition1
、condition2
和 condition3
)。这个查询将返回一个结果集,其中包含每个条件的计数。
例如,假设您有一个名为 orders
的表,其中包含列 order_date
和 order_status
。您想要统计今天的订单数量、已完成的订单数量和未完成的订单数量。您可以使用以下查询:
SELECT
COUNT(CASE WHEN order_date = CURRENT_DATE THEN 1 ELSE NULL END) AS count_today,
COUNT(CASE WHEN order_status = 'completed' THEN 1 ELSE NULL END) AS count_completed,
COUNT(CASE WHEN order_status = 'pending' THEN 1 ELSE NULL END) AS count_pending
FROM
orders;
这将返回一个结果集,其中包含三列:count_today
、count_completed
和 count_pending
,分别显示今天的订单数量、已完成的订单数量和未完成的订单数量。