假设我正在运行以下sql SELECT查询:
SELECT Name, Age FROM Friends;
Bilbo|111
Aragorn|69
我希望能够在同一查询中获得的结果总数。
但是,如果我执行以下操作:
SELECT Count(*),Name, Age FROM Friends;
2|Aragorn|69
仅显示最终结果。有没有办法获得所有结果,仍然可以使用单个SQLite查询获取Count?
答案 0 :(得分: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;
答案 1 :(得分:1)
通常,可以查询返回的结果集对象的长度;所以你不要把像COUNT
这样的聚合函数放入SQL查询本身,而只是计算返回的行数。
答案 2 :(得分:1)
如果我理解您的问题,请使用UNION
:
SELECT Name, Age FROM Friends UNION SELECT 'Count', COUNT() FROM Friends;