SQL按计数分组
这是我的剧本SQL按计数分组,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,这是我的剧本 SELECT COUNT( [Id]) as [Count Of Register], Tag as [Tag] FROM [Members] Group By Tag Order By [Count Of Register] Desc; 返回的表如下所示: Count Tag 550 ----1 550 ----2 545 ----3 545 ----4 545 ----5 所以,这次我需要标记的计数,按这个新的计数字段分组 一些返回值如下: 2 ---550 3 -
SELECT COUNT( [Id]) as [Count Of Register],
Tag as [Tag]
FROM [Members]
Group By Tag
Order By [Count Of Register] Desc;
返回的表如下所示:
Count Tag
550 ----1
550 ----2
545 ----3
545 ----4
545 ----5
所以,这次我需要标记的计数,按这个新的计数字段分组
一些返回值如下:
2 ---550
3 ---545
有没有办法不使用新表、模板表或任何存储表而只通过查询?您可以使用
SELECT [Count Of Register], COUNT(1) [Grouped Count]
FROM
(
SELECT COUNT( [Id]) as [Count Of Register],
Tag as [Tag]
FROM [Members]
Group By Tag
) MyTable
GROUP BY [Count Of Register]
SELECT [Count Of Register], COUNT(*) FROM
(SELECT COUNT([Id]) as [Count Of Register], Tag as [Tag]
FROM [Members] GROUP BY Tag) q
GROUP BY [Count Of Register]
mysql>创建表order1(计数器int(3)非空自动增量主键,
->标签int(3));
查询正常,0行受影响(0.01秒)
mysql>插入order1值(500,20)//根据需要插入任意值并检查
在order1中插入值(500,20);
在order1中插入值(600,20);
mysql>从order1按计数器分组中选择计数器、计数(*)您想要的结果是什么
(550,2)、(545,3)
?@MartinSmith是的,我编辑问题有一个错误:Msg 1033,级别15,状态1,第19行ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML。哦,是的,很抱歉,您不能在内部查询中使用ORDER BY!已修复示例。出现错误:列名“Tag”无效。用于计数(标记)