![](/img/trans.png)
[英]MySQL: Difference outputs from group by and partition by with dense_rank() over()?
[英]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.