Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2012 T-SQL如何从结果集中获取最常见的值_Sql Server 2012 - Fatal编程技术网

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
如果某些日期的最大计数可以相同,则带领带的
将选择多个日期