+ -
当前位置:首页 → 问答吧 → 求一条以日期和user为条件分组的SQL语句

求一条以日期和user为条件分组的SQL语句

时间:2011-12-04

来源:互联网

表中的数据如下
XML code

DateTime                    user  
2011-12-2 20:00:00         小明
2011-12-2 21:00:00         小明
2011-12-2 22:00:00         小明

2011-12-2 20:00:00         小红
2011-12-2 21:00:00         小红
2011-12-2 22:00:00         小红

2011-12-3 20:00:00         小明
2011-12-3 21:00:00         小明
2011-12-3 22:00:00         小明

2011-12-4 22:00:00         小明





我想通过一条SQL语句读出 以“每一天每个人”的记录个数
实际上我想要的效果如下 

DateTime User 记录数
2011-12-2 小明 3
2011-12-2 小红 3
2011-12-3 小红 3
2011-12-4 小红 1

作者: ximomomoxinei3   发布时间: 2011-12-04

我希望按日期分组 我写了下SQL语句如下,但按的是时间而不是日期,帮忙修改下

SQL code

SELECT UID as '员工',Time as '日期',count(*) as '次数' from Dialogue group by Time,UID


作者: ximomomoxinei3   发布时间: 2011-12-04

SQL code

SELECT UID as '员工',convert(varchar(10),Time,120)  as '日期',count(*) as '次数' 
from Dialogue group by convert(varchar(10),Time,120) ,UID


作者: jyh070207   发布时间: 2011-12-04

SQL code
SELECT 
UID as '员工',convert(varchar(10),Time,120)  as '日期',count(*) as '次数' 
from
 Dialogue 
group by
 convert(varchar(10),Time,120) ,UID

作者: fredrickhu   发布时间: 2011-12-04

SQL code

if object_id('tb','U') is not null
   drop table tb
go
create table tb
(
 [datetime] datetime,
 [user] varchar(10)
)
go
insert into tb
select '2011-12-2 20:00:00','小明' union all
select '2011-12-2 21:00:00','小明' union all
select '2011-12-2 22:00:00','小明' union all
select '2011-12-2 20:00:00','小红' union all
select '2011-12-2 21:00:00','小红' union all
select '2011-12-2 22:00:00','小红' union all
select '2011-12-3 20:00:00','小明' union all
select '2011-12-3 21:00:00','小明' union all
select '2011-12-3 22:00:00','小明' union all
select '2011-12-4 20:00:00','小明'
go
select [datetime]=convert(varchar(10),[datetime],120),[user],count(*) from tb group by convert(varchar(10),[datetime],120),[user]
go
/*
datetime   user       
---------- ---------- -----------
2011-12-02 小红         3
2011-12-02 小明         3
2011-12-03 小明         3
2011-12-04 小明         1

(4 行受影响)
*/

作者: pengxuan   发布时间: 2011-12-04

SQL code

--修改一下,给统计列个别名
if object_id('tb','U') is not null
   drop table tb
go
create table tb
(
 [datetime] datetime,
 [user] varchar(10)
)
go
insert into tb
select '2011-12-2 20:00:00','小明' union all
select '2011-12-2 21:00:00','小明' union all
select '2011-12-2 22:00:00','小明' union all
select '2011-12-2 20:00:00','小红' union all
select '2011-12-2 21:00:00','小红' union all
select '2011-12-2 22:00:00','小红' union all
select '2011-12-3 20:00:00','小明' union all
select '2011-12-3 21:00:00','小明' union all
select '2011-12-3 22:00:00','小明' union all
select '2011-12-4 20:00:00','小明'
go
select [datetime]=convert(varchar(10),[datetime],120),[user],记录数=count(*) from tb group by convert(varchar(10),[datetime],120),[user]
go
/*
datetime   user       记录数
---------- ---------- -----------
2011-12-02 小红         3
2011-12-02 小明         3
2011-12-03 小明         3
2011-12-04 小明         1

(4 行受影响)

*/

作者: pengxuan   发布时间: 2011-12-04

引用 3 楼 fredrickhu 的回复:
SQL code

SELECT
UID as '员工',convert(varchar(10),Time,120) as '日期',count(*) as '次数'
from
Dialogue
group by
convert(varchar(10),Time,120) ,UID

加个条件,每个人显示的日期倒叙排列应该怎么?

作者: ximomomoxinei3   发布时间: 2011-12-04

SQL code

select [datetime]=convert(varchar(10),[datetime],120),[user],记录数=count(*) from tb
group by convert(varchar(10),[datetime],120),[user]
order by 1 desc


引用 6 楼 ximomomoxinei3 的回复:
引用 3 楼 fredrickhu 的回复:
SQL code

SELECT
UID as '员工',convert(varchar(10),Time,120) as '日期',count(*) as '次数'
from
Dialogue
group by
convert(varchar(10),Time,120) ,UID

加个条件,每个人显示的日期倒叙排列应该怎么?

作者: geniuswjt   发布时间: 2011-12-04

引用 6 楼 ximomomoxinei3 的回复:
引用 3 楼 fredrickhu 的回复:
SQL code

SELECT
UID as '员工',convert(varchar(10),Time,120) as '日期',count(*) as '次数'
from
Dialogue
group by
convert(varchar(10),Time,120) ,UID

加个条件,每个人显示的日期倒叙排列应该怎么?

SQL code
select [datetime]=convert(varchar(10),[datetime],120),[user],
       记录数=count(*) from tb
group by convert(varchar(10),[datetime],120),[user]
order by [datetime] desc

作者: ssp2009   发布时间: 2011-12-04

SQL code


select [datetime]=convert(varchar(10),[datetime],120),[user],
       记录数=count(*) from tb
group by convert(varchar(10),[datetime],120),[user]
order by [datetime] desc

作者: public0011   发布时间: 2011-12-04

SQL code
select convert(varchar(10),[datetime],120)日期,user,count(*) ct
from tb
group by convert(varchar(10),[datetime],120),user
order by 1

作者: qianjin036a   发布时间: 2011-12-04

热门下载

更多