获取行计数以及表列

时间:2017-01-04 06:23:18

标签: sql oracle oracle11g

我正在使用下面的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')

1 个答案:

答案 0 :(得分:3)

您的查询可以更简单:

SELECT s.*, count(*) over () as row_count
FROM users s;

但是,更快的查询(在获取结果之前不需要计算行数)和稍有不同的是:

SELECT s.*, rownum as row_number
FROM users s;

最后一次提取的行将包含行数。 这可能对你没有帮助(我不知道你想要达到什么目的)。