单个 table 的多行计数
Multiple row count from single table
如何使用 db2 查询从单个 table 中获取多条记录的计数?
假设我想获取 1 条记录的计数,我正在使用:
select count(*) from schema.table where record value='x'
我需要的是对来自同一 table 的多条记录进行计数,每条记录在不同的行中。我正在尝试类似的东西:
select count(*) from schema.table where record in('x','y','z')
查询结果将值组合成一行中的一个值,我不希望这样。
group by
语法将 table 分成几组,并允许您分别对每个组执行聚合函数(count
,在您的情况下):
SELECT record, COUNT(*)
FROM schema.table
GROUP BY record
我几乎同意 Mureinik 的观点。您可以添加一个 WHERE
子句以仅从您想要的那些记录中获取多行计数,例如(x, y, z)
SELECT record, COUNT(*) AS 'count'
FROM schema.table WHERE record IN ('x', 'y', 'z')
GROUP BY record
结果:
------------------
| record | count |
------------------
| x | 100 |
| y | 150 |
| z | 50 |
------------------
如何使用 db2 查询从单个 table 中获取多条记录的计数?
假设我想获取 1 条记录的计数,我正在使用:
select count(*) from schema.table where record value='x'
我需要的是对来自同一 table 的多条记录进行计数,每条记录在不同的行中。我正在尝试类似的东西:
select count(*) from schema.table where record in('x','y','z')
查询结果将值组合成一行中的一个值,我不希望这样。
group by
语法将 table 分成几组,并允许您分别对每个组执行聚合函数(count
,在您的情况下):
SELECT record, COUNT(*)
FROM schema.table
GROUP BY record
我几乎同意 Mureinik 的观点。您可以添加一个 WHERE
子句以仅从您想要的那些记录中获取多行计数,例如(x, y, z)
SELECT record, COUNT(*) AS 'count'
FROM schema.table WHERE record IN ('x', 'y', 'z')
GROUP BY record
结果:
------------------
| record | count |
------------------
| x | 100 |
| y | 150 |
| z | 50 |
------------------