Sql server 2012 T-SQL如何从结果集中获取最常见的值
尝试获取结果集中最常见日期的单个结果:Sql server 2012 T-SQL如何从结果集中获取最常见的值,sql-server-2012,Sql Server 2012,尝试获取结果集中最常见日期的单个结果: SELECT col1, col2, (SELECT MIN(CONVERT(VARCHAR,[date], 103)) FROM TABLE ) AS [Date] FROM TABLE WHERE [Date] BETWEEN '20160101' AND '20160131' 结果: 所以我只想要15/01/2016。我知道我需要使用子查询和计数,并尝试了许多不同的解决方案,作为一名新手,我发现子查询比加入特别是相关的嵌套子查询更难理解。按
SELECT col1, col2,
(SELECT MIN(CONVERT(VARCHAR,[date], 103)) FROM TABLE ) AS [Date]
FROM TABLE WHERE [Date] BETWEEN '20160101' AND '20160131'
结果:
所以我只想要
15/01/2016
。我知道我需要使用子查询和计数,并尝试了许多不同的解决方案,作为一名新手,我发现子查询比加入特别是相关的嵌套子查询更难理解。按日期分组,按递减计数排序,然后选择前1
:
select top 1 with ties [date]
from table
where [date] between '20160101' and '20160131'
group by [date]
order by count(*) desc
如果某些日期的最大计数可以相同,则带领带的将选择多个日期。按日期分组
,按计数降序
排序,然后选择前1名
:
select top 1 with ties [date]
from table
where [date] between '20160101' and '20160131'
group by [date]
order by count(*) desc
如果某些日期的最大计数可以相同,则带领带的将选择多个日期