【问题标题】:sql show the records and the total number of records in one resultsql 在一个结果中显示记录和记录总数
【发布时间】:2022-01-18 02:00:11
【问题描述】:

我有一张这样的桌子

USERS

id name    location
1  anna     z
2  billy    x
3  Can      y
4  Diigy    w

我想写一个查询,它会给我记录和记录总数 我知道我可以单独实现它们

Select * from users;
1  anna     z
2  billy    x
3  Can      y
4  Diigy    w

select COUNT(id) from users;
4

我对如何将这两者结合在一起有点困惑。

【问题讨论】:

  • 您可以使用获取计数的子查询连接表。
  • Oracle 还是 MySQL?不要添加不相关的标签。
  • 如果您没有要添加的内容,请尝试用相关的内容回答问题,请继续
  • StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
  • 对于 MySQL 和 Oracle,答案可能不同。你需要澄清一下。

标签: mysql sql


【解决方案1】:

Ww3 Schools 在这里为您提供了一个很好的资源: https://www.w3schools.com/mysql/mysql_join.asp

使用您用来获取所有记录的 Select 创建表或临时表。然后用计数结果加入表,也许用组合表创建一个新表。

(根据select语句制作表格)

CREATE TABLE tbl_newtable
SELECT * FROM users;

如果你做到了这一步,你需要做的就是用 COUNT 加入这个表,但问题是计数和表中所有其他东西之间的共同因素是什么?或者,也许您可​​以做一个 INSERT 语句,然后是 count 语句作为另一个想法。

【讨论】:

  • 为什么需要创建另一个表?
  • 有人建议将 JOIN 作为一种方法。我只是提供了一条通往它的道路。有很多方法,但是如果 OP 可以使用 select 制作一个表,那么他现在所需要的就是在那里插入插入。完成后,他可以删除、截断或保留结果。
  • 加入users即可,不需要tbl_newtable
  • 将结果添加到用户表中?我的意思是我猜,但您不只是想要该表中的用户数据吗?并且使用一个新的一次性新表,其中只有确切的数据,可以在其中插入计数而不会破坏用户表,这就是我正在考虑的。
  • 他不是在问如何将结果放入表中,他只是想要一个返回组合结果的 SELECT 查询。
【解决方案2】:

使用 Windows 函数合并您的两个查询

Select * from users;
1  anna     z
2  billy    x
3  Can      y
4  Diigy    w

select COUNT(id) from users;
4

使用COUNT(id)Over()

Select *,COUNT(id)Over() from users;
1  anna     z  4
2  billy    x  4
3  Can      y  4
4  Diigy    w  4

【讨论】:

  • 我喜欢这里的简洁,很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 2018-02-07
  • 1970-01-01
相关资源
最近更新 更多