我正在使用下面的SQL语句来获取行计数并显示我希望在结果集中拥有的所有列,礼貌here
这是最好的方法还是有更好,更有效的方法来达到预期效果
SELECT mainsql.*
FROM ( SELECT t.*,
COUNT (
1)
OVER (
ORDER BY 1
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
row_count
FROM (SELECT * FROM users) t
ORDER BY 1) mainsql
更新1
SELECT s.*, COUNT (*) OVER () AS row_count
FROM users s
WHERE (1 = 1 AND user_name = 'SCOTT')
答案 0 :(得分:3)
您的查询可以更简单:
SELECT s.*, count(*) over () as row_count
FROM users s;
但是,更快的查询(在获取结果之前不需要计算行数)和稍有不同的是:
SELECT s.*, rownum as row_number
FROM users s;
最后一次提取的行将包含行数。 这可能对你没有帮助(我不知道你想要达到什么目的)。