sql 实现按日期分组
数据如下:日期金额2008-05-2112:15:56102008-05-2114:15:5652008-05-2115:22:5652008-05-228:15:561...
数据如下:
日期 金额
2008-05-21 12:15:56 10
2008-05-21 14:15:56 5
2008-05-21 15:22:56 5
2008-05-22 8:15:56 15
2008-05-22 22:15:56 7
2008-05-23 16:15:56 6
2008-05-26 16:15:56 16
.....
说明:同一天可能有多条记录,但日期并不一定连续,怎么才能实现按日期分组显示有多少记录数,如下所示:
日期 记录数
2008-05-21 3
2008-05-22 2
2008-05-23 1
2008-05-26 1
...........
或者只显示出有记录的日期就可以
这样写同一天如果有多条记录则会显示多条,我的目的是一天的记录只显示一条 展开
日期 金额
2008-05-21 12:15:56 10
2008-05-21 14:15:56 5
2008-05-21 15:22:56 5
2008-05-22 8:15:56 15
2008-05-22 22:15:56 7
2008-05-23 16:15:56 6
2008-05-26 16:15:56 16
.....
说明:同一天可能有多条记录,但日期并不一定连续,怎么才能实现按日期分组显示有多少记录数,如下所示:
日期 记录数
2008-05-21 3
2008-05-22 2
2008-05-23 1
2008-05-26 1
...........
或者只显示出有记录的日期就可以
这样写同一天如果有多条记录则会显示多条,我的目的是一天的记录只显示一条 展开
5个回答
展开全部
需要用convert函数转换日期格式,并且需要用group by来实现分组。
1、创建测试表及插入数据:
create table test
(tdate datetime,
sal int);
insert into test values ('2015-09-23 12:22:22',100);
insert into test values ('2015-09-23 01:54:34',456);
insert into test values ('2015-09-24 14:32:35',45);
insert into test values ('2015-09-24 22:23:43',67);
insert into test values ('2015-09-25 19:43:22',234);
insert into test values ('2015-09-25 08:14:12',67);
insert into test values ('2015-09-26 04:53:34',45);
insert into test values ('2015-09-26 09:46:54',78);
2、执行sql语句:
select convert(varchar(10),tdate,120) tdate,sum(sal) sal from test group by convert(varchar(10),tdate,120);
3、执行结果:
展开全部
很简单呀
你使用select语句
后面加上日期就行了
select * from 表名 order by 日期 desc
你使用select语句
后面加上日期就行了
select * from 表名 order by 日期 desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select distinct 日期 from table
追问
这样写同一天如果有多条记录则会显示多条,我的目的是一天的记录只显示一条
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT
Convert ( VARCHAR(10), 日期, 120) AS 日期
COUNT(*) AS 记录数
FROM
表
GROUP BY
Convert ( VARCHAR(10), 日期, 120)
Convert ( VARCHAR(10), 日期, 120) AS 日期
COUNT(*) AS 记录数
FROM
表
GROUP BY
Convert ( VARCHAR(10), 日期, 120)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
女子落魄鼓舞人心所以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询