Hi,
I am getting a wierd error while using order by in the over clause. Consider the following query:
select count (*) over (order by STD_CLL_CNTR_KEY) as cnt
from FCT_CLL_CS_DTLS
The error reported is :
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'order'.
But at the same time this particular query seems to be working fine:
select rank () over (order by STD_CLL_CNTR_KEY) as cnt
from FCT_CLL_CS_DTLS
Am I missing something fundamental or is there a bigger issue.
Thanks in advance,
Regards,
Emil
I quote from Books Online the complete sytax related to the 3 key words :RANK, OVER and COUNT :
"
RANK ( ) OVER ( [ < partition_by_clause > ] < order_by_clause > )
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
OVER Clause (Transact-SQL)
Determines the partitioning and ordering of the rowset before the associated window function is applied.
"
so, the second is the correct SELECT
and
"
RANK
Returns the rank of each row within the partition of a result set. The rank of a row is one plus the number of ranks that come before the row in question.
"
so using RANK is the right decision because you count STD_CLL_CNTR_KEYSTD_CLL_CNTR_KEY that i guess is a primary key
|||Thanks Gigi
No comments:
Post a Comment