SQL一条语句统计记录总数及各状态数

编程学习 2025-05-15 02:53www.dzhlxh.cn编程入门

SQL奥秘:一条语句统计记录总数及状态分布

对于数据库管理员或热衷于数据分析的朋友们来说,熟练掌握SQL查询语句是必备的技艺。今天,我们将聚焦于如何仅通过一条SQL语句便统计记录的总数以及各状态的数量。

方法一:使用子查询与UNION ALL操作

-

让我们通过一个具体的例子来展示如何使用子查询与UNION ALL操作来实现这一目标。假设我们有一个名为TB的表,其中包含了记录的状态信息。我们可以这样写SQL语句:

```sql

SELECT

SUM(正确数) + SUM(错误数) AS 总记录数,

SUM(正确数),

SUM(错误数)

FROM

(

SELECT COUNT(1) 正确数, 0 错误数 FROM TB WHERE STATUS=1

UNION ALL

SELECT 0 正确数, COUNT(1) 错误数 FROM TB WHERE STATUS=0

) a

```

在这个例子中,我们首先根据状态(STATUS=1或STATUS=0)创建了两个子查询,然后使用UNION ALL将它们合并成一个结果集。在此基础上,外层查询通过求和操作得到了总记录数以及每种状态的数量。

方法二:使用CASE语句进行条件计数

-

除了方法一之外,我们还可以使用CASE语句来达成同样的目标。以下是一个示例:

```sql

SELECT

COUNT(1) AS 总记录数,

SUM(CASE WHEN STATUS=1 THEN 1 ELSE 0 END) 正确数,

SUM(CASE WHEN STATUS=0 THEN 1 ELSE 0 END) 错误数

FROM T

```

在这个例子中,我们在SELECT语句中使用CASE函数为每个记录的状态进行了判断。如果状态为1,则计数为正确数;如果状态为0,则计数为错误数。通过SUM函数,我们可以得到每种状态的数量总和。通过COUNT函数,我们还可以得到总记录数。这样,我们只需要一条SQL语句就能完成所有的统计任务。

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板