mysql - mysql如何向表中添加计数列

标签 mysql sql

我有 tableA 并想向其添加计数列,计数是 tableA 的总行数并且结果表中的所有行都相同,tableA 如下所示:

  • 注意:表A是其他查询的结果

表A

id | name  | rank |
-------------------
1  | John  |  12  |
2  | Maria |  18  |
3  | Steph |  44  |
4  | Jay   |  17  |

结果应该是:

id | name  | rank | total | rank/total 
---------------------------------------
1  | John  |  12  |  4    |    3
2  | Maria |  18  |  4    |    4.5
3  | Steph |  44  |  4    |    11
4  | Jay   |  17  |  4    |    4.25

如何用 MYSQL 做到这一点

最佳答案

要获取表格中的总行数,请执行以下操作:

SELEcT count(*) FROM TableA

然后,您可以将此查询组合到另一个查询的 SELEcT 中,并从中进行计算,结果如下:

SELEcT *, (SELEcT count(*) FROM TableA) AS total, rank / (SELEcT count(*) FROM TableA) AS 'rank/total'  
FROM  tableA

如果 tableA 是另一个查询的结果,则执行

SELEcT *, (SELEcT count(*) FROM TableA) AS total, rank / (SELEcT count(*) FROM TableA) AS 'rank/total'  
FROM  ( insert_the_other_query_here ) tableA

关于mysql - mysql如何向表中添加计数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678504/

相关文章:

python - 在 Django 中动态创建热门文章列表?

mysql - 如何删除超过 400 天的所有帖子

sql - MySql 到 Sql Server 迁移问题

SQLite:类似于 Oracle 解码或 MS "If"

java - jsp显示时如何去掉多余的数据

php - 发票平面 : List Payment Transaction on Invoice

c# - 捕获 SQLException 并重试的良好 C# 编码风格是什么

php - SELECT WHERE <> 给出无限循环

mysql - 分组以避免在其中一个值发生更改的行之间返回具有相同列值集的行

mysql - 如果获取表中没有数据,则在插入之前触发触发错误。