1

假设我正在运行以下 sql SELECT 查询:

SELECT Name, Age FROM Friends;

Bilbo|111
Aragorn|69

我希望能够在同一个查询中获得结果总数。
但是,如果我执行以下操作:

SELECT Count(*),Name, Age FROM Friends;

2|Aragorn|69

只显示最终结果。有没有办法让我获得所有结果并仍然通过单个 SQLite 查询获得计数?

4

3 回答 3

2

如果您的 DBMS 支持窗口聚合函数,那将很容易:

SELECT Count(*) OVER (),Name, Age FROM Friends;

否则你必须(交叉)加入:

SELECT cnt,Name, Age FROM Friends, (SELECT Count(*) as cnt FROM Friends);

或使用标量子查询:

SELECT (SELECT Count(*) FROM Friends) as cnt, Name, Age FROM Friends;
于 2013-08-30T12:22:07.637 回答
1

通常,可以查询返回的结果集对象的长度;所以你不要把一个聚合函数像COUNTSQL 查询本身一样,而只是计算返回了多少行。

于 2013-08-30T12:17:52.697 回答
1

如果我理解您的问题,请使用UNION

SELECT Name, Age FROM Friends UNION SELECT 'Count', COUNT() FROM Friends;
于 2013-08-30T12:54:01.383 回答