簡體   English   中英

Dense_Rank 優於分區依據 - 需要分組依據?

[英]Dense_Rank over Partition By - Requiring Group By?

我有以下 SQL 代碼

SELECT  [Group], 
        [ID], 
        CASE WHEN 
        DENSE_RANK () OVER (
            PARTITION BY [Group]
            ORDER BY COUNT([ID]) desc) < 12 
        THEN 'TRUE' ELSE 'FALSE' END As 'Top'
  FROM [i].[dbo].[vw_name]

哪個返回錯誤

消息 8120,級別 16,State 1,第 8 行列“i.dbo.vw_name.Group”在 select 列表中無效,因為它不包含在聚合 function 或 GROUP BY 子句中。

我已經搜索了盡可能多的資源,但所有答案都說Over ( Partition BY () )不需要GROUP BY子句。

如果這是一個簡單的問題,我深表歉意 - 但我已經被困了一段時間了。

with agg as (
    select grp, id,
        count(*) over (partition by grp) as cnt
    from vw_name
)
select grp, id, cnt,
    dense_rank() over (order by cnt desc) as rnk
from agg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM