问题描述
- sql 怎实现查询数据表内出现最多次数的数据
-
我这里有个停车的信息表tb_Parkinginformati ,里面有addtime这个字段,我想查出,在某个时间段内(2015/6/1-2015/7/1),车辆入场最多的一个日期 我要怎么写,求解答,实在找不到了 急。使用的是sqlserver数据库
解决方案
select max(CIID) from tb_Parkinginformati where addtime >= 2015/6/1 and addtime <= 2015/7/1
解决方案二:
1、把addtime转换成2015/6/1格式数据,不要时分秒,convert函数
2、对addtime进行分组,group by 函数
3、按照count(addtime)进行排序即可
解决方案三:
select addtime, count(*) from xxx wehre xxxxx group by addtime
count最多的那条addtime就是
解决方案四:
select top 1 MAX(m) m,tb1code from(
select sum(CIID) m,addtime from tb_Parkinginformati where CONVERT(varchar(100),addtime, 23)>='2015-06-01'
and CONVERT(varchar(100),addtime, 23)>='2015-07-01' group by addtime
) a group by tb1code order by m desc
解决方案五:
2楼的思路很对,先去掉addtime的时分秒,可以用时间函数转换,也可以把时间转成字符串,然后再排序就行了。
解决方案六:
将日期转化为日期字符串,然后通过group by 日期字符串
解决方案七:
select top 1 CONVERT(varchar(100),addtime, 102) ,count(addtime) as counttime from tb_Parkinginformati where ciid between (select min(ciid) from tb_Parkinginformati where CONVERT(varchar(100),addtime, 102)='2016/06/01') and(select min(ciid) from tb_Parkinginformati where CONVERT(varchar(100),addtime, 102)='2016/07/01') group by CONVERT(varchar(100),addtime, 102) order by counttime desc
解决方案八:
select Convert(varchar(10),AddTime,120),count(*)
from tb_Parkinginformati
where Convert(varchar(10),AddTime,120) between '2015-06-01' and '2015-07-01'
group by Convert(varchar(10),AddTime,120)
order by count(*) desc
解决方案九:
能给个建表SQL吗?