Thread: select count(*)
Dear List ,
if we simply do select count(*) and not specify any table then it gives 1 eg:
bric=# SELECT count(*) from job ;
count
-------
2380
(1 row)
bric=# SELECT count(*) job ;
job
-----
1
(1 row)
bric=# SELECT count(*) ;
count
-------
1
(1 row)
bric=# SELECT count(*) job_non_exist ;
job_non_exist
---------------
1
(1 row)
bric=# SELECT count(*) jo1b ;
jo1b
------
1
(1 row)
bric=# SELECT count(*) none ;
ERROR: syntax error at or near "none"
LINE 1: SELECT count(*) none ;
I fail to see any progression ?
regds
mallah.
if we simply do select count(*) and not specify any table then it gives 1 eg:
bric=# SELECT count(*) from job ;
count
-------
2380
(1 row)
bric=# SELECT count(*) job ;
job
-----
1
(1 row)
bric=# SELECT count(*) ;
count
-------
1
(1 row)
bric=# SELECT count(*) job_non_exist ;
job_non_exist
---------------
1
(1 row)
bric=# SELECT count(*) jo1b ;
jo1b
------
1
(1 row)
bric=# SELECT count(*) none ;
ERROR: syntax error at or near "none"
LINE 1: SELECT count(*) none ;
I fail to see any progression ?
regds
mallah.
In response to Rajesh Kumar Mallah <mallah.rajesh@gmail.com>: > Dear List , > > if we simply do select count(*) and not specify any table then it gives 1 > eg: > > bric=# SELECT count(*) from job ; > count > ------- > 2380 > (1 row) > > bric=# SELECT count(*) job ; > job > ----- > 1 > (1 row) > > > > bric=# SELECT count(*) ; > count > ------- > 1 > (1 row) > > > > bric=# SELECT count(*) job_non_exist ; > job_non_exist > --------------- > 1 > (1 row) > > bric=# SELECT count(*) jo1b ; > jo1b > ------ > 1 > (1 row) > > bric=# SELECT count(*) none ; > ERROR: syntax error at or near "none" > LINE 1: SELECT count(*) none ; > > > I fail to see any progression ? When you don't specify a FROM clause, you get 1 because it's returning 1 row. No matter what you alias the result to, it's not going to change the result, unless of course you try to alias it to an SQL reserved word, such as "none", without quoting it. Of course, if you include the optional AS, it probably makes more sense what's going on: SELECT count(*) AS jolb; SELECT count(*) AS none; SELECT count(*) AS "none"; -- Bill Moran http://www.potentialtech.com http://people.collaborativefusion.com/~wmoran/
i "discovered" it as a result of typo :)
we usually select expressions without tables
eg select 1+2 ; etc and the results are as expected,
somehow i failed to stretch the analogy to count(*)
which is mostly used over tables or table expression.
thanks anyways.
regds
mallah.
we usually select expressions without tables
eg select 1+2 ; etc and the results are as expected,
somehow i failed to stretch the analogy to count(*)
which is mostly used over tables or table expression.
thanks anyways.
regds
mallah.
On Wed, Mar 9, 2011 at 11:20 PM, Bill Moran <wmoran@potentialtech.com> wrote:
In response to Rajesh Kumar Mallah <mallah.rajesh@gmail.com>:When you don't specify a FROM clause, you get 1 because it's
> Dear List ,
>
> if we simply do select count(*) and not specify any table then it gives 1
> eg:
>
> bric=# SELECT count(*) from job ;
> count
> -------
> 2380
> (1 row)
>
> bric=# SELECT count(*) job ;
> job
> -----
> 1
> (1 row)
>
>
>
> bric=# SELECT count(*) ;
> count
> -------
> 1
> (1 row)
>
>
>
> bric=# SELECT count(*) job_non_exist ;
> job_non_exist
> ---------------
> 1
> (1 row)
>
> bric=# SELECT count(*) jo1b ;
> jo1b
> ------
> 1
> (1 row)
>
> bric=# SELECT count(*) none ;
> ERROR: syntax error at or near "none"
> LINE 1: SELECT count(*) none ;
>
>
> I fail to see any progression ?
returning 1 row. No matter what you alias the result to, it's not going
to change the result, unless of course you try to alias it to an SQL
reserved word, such as "none", without quoting it. Of course, if you
include the optional AS, it probably makes more sense what's going on:
SELECT count(*) AS jolb;
SELECT count(*) AS none;
SELECT count(*) AS "none";
--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/