用于计算表中行数的 SQL 查询

Posted

技术标签:

【中文标题】用于计算表中行数的 SQL 查询【英文标题】:SQL query to count rows in a table 【发布时间】:2013-09-28 05:03:38 【问题描述】:

我在 ms access 2003 中有一个表 (MYTABLE),其中包含以下列:表名、列名和计数 我想通读该表并为每个表和列动态创建 SQL 语句,运行 SQL 以获取计数并更新表中的“计数”列。

例如

我的桌子有

Tablename columnname count
PATIENT.  AGE.          0

从年龄不为空的患者中生成 SQL select Count(*)

使用计数值更新我表中的“计数”列

【问题讨论】:

【参考方案1】:

您可以在UPDATE 查询中使用DCount Function。

UPDATE MYTABLE
SET [count] =
    DCount('*', [Tablename], '[' & columnname & '] Is Not Null');

UPDATE 语句检查MYTABLE 中的每一行,为DCount() 提供存储在Tablenamecolumnname 字段中的值,并将从DCount 返回的数字存储在名为count 的字段中在同一行。

【讨论】:

我遇到了一个错误。如何遍历 MYTABLE 并将表和列的值传递给 DCount? 我修改了答案以解释UPDATE 语句如何遍历MYTABLE 中包含的行。您收到的错误信息是什么?【参考方案2】:
Update tablename
set count=(select Count(*) from PATIENT WHERE AGE IS NOT NULL)
where table_name=PATIENT 

【讨论】:

我假设你的意思是更新我的表?

以上是关于用于计算表中行数的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

基于关联计算表中行之间相似度的最佳方法是啥?

用于计算重复项的 SQL 查询 [重复]

用于执行聚合和计算百分比的 SQL 查询

我如何优化此查询以用于计算响应的 sql

为啥我计算行数的原始查询总是返回 -1?

如何使用 PHP 和 PDO 计算 MySQL 表中行子集的大小(以字节为单位)?