SELECT your_columns, COUNT(*) OVER() as Ttl_Rows FROM your_data_set
id | name | Ttl_Rows |
---|---|---|
1 | example | 5 |
2 | foo | 5 |
3 | bar | 5 |
4 | baz | 5 |
5 | quux | 5 |
Instead of using two queries to get a count then the line, you can use an aggregate as a window function and use the full result set as the window.
This can be used as a base for further calculation without the complexity of extra self joins.