Sql 按id的唯一计数
如何进行唯一计数,以便ID#1:的计数为绿色-2、红色-1、蓝色-1,ID#2、橙色-2、粉色-1、蓝色-1、白色-1 然后我需要使用rank函数按ID对颜色进行排序。我在网上看到了如何使用rank函数Sql 按id的唯一计数,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,如何进行唯一计数,以便ID#1:的计数为绿色-2、红色-1、蓝色-1,ID#2、橙色-2、粉色-1、蓝色-1、白色-1 然后我需要使用rank函数按ID对颜色进行排序。我在网上看到了如何使用rank函数 我使用的是sql server 2014。您可以按id、颜色进行分组,然后根据计数顺序进行排序 select *, rank() over (order by cnt desc) from (select *, count(*) as cnt from YourTable
我使用的是sql server 2014。您可以按id、颜色进行分组,然后根据计数顺序进行排序
select *, rank() over (order by cnt desc)
from
(select *, count(*) as cnt
from YourTable
group by id, color)
我想你要问的问题是:
select id, color, count(*) as cnt,
rank() over (partition by id order by count(*) desc) as rnk
from t
group by id, color;
你知道如何使用
rank()
,但你不知道group by
?我在网上看到了如何使用rank(),但我需要一个按ID的每种颜色的唯一计数。我知道如何使用group by,即group by idSELECT ID,count(color)as color to#D1 From#table 1.nvmd我弄明白了