Sql 使用“订单依据”时与“分组依据”一起发出
我在尝试分组时遇到了困难,但使用ORDERBY语句时遇到了困难 这是我的问题Sql 使用“订单依据”时与“分组依据”一起发出,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在尝试分组时遇到了困难,但使用ORDERBY语句时遇到了困难 这是我的问题 create table AllData(NoOfPerson int,NoOfMinutes int,StartTime Datetime); INSERT INTO AllData VALUES(1,2,GETDATE()), (0,3,GETDATE()+1), (3,4,GETDATE()+2), (2,5,GETDATE()+3), (0,6,GETDATE()+4), (3,7,GETDATE()+5),
create table AllData(NoOfPerson int,NoOfMinutes int,StartTime Datetime);
INSERT INTO AllData VALUES(1,2,GETDATE()),
(0,3,GETDATE()+1),
(3,4,GETDATE()+2),
(2,5,GETDATE()+3),
(0,6,GETDATE()+4),
(3,7,GETDATE()+5),
(2,8,GETDATE()+6);
和查询的输出
select NoOfperson,SUM(NoOfMinutes)NoOfMinutes,MIN(StartTime)StartTime from AllData
group by NoOfperson,StartTime
order by StartTime
NoOfperson NoOfMinutes StartTime
1 2 2014-02-19 15:44:52.617
0 3 2014-02-20 15:44:52.617
3 4 2014-02-21 15:44:52.617
2 5 2014-02-22 15:44:52.617
0 6 2014-02-23 15:44:52.617
3 7 2014-02-24 15:44:52.617
2 8 2014-02-25 15:44:52.617
但我想输出应该是这样的
首先
1 -- 2
0 -- 9
3 -- 11
2 -- 13
如何获取此输出?尝试换行查询:
SELECT *
FROM (SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson) t
ORDER BY noofminutes ASC;
或者简单地说:
SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson
ORDER BY noofminutes ASC;
尝试换行查询:
SELECT *
FROM (SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson) t
ORDER BY noofminutes ASC;
或者简单地说:
SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson
ORDER BY noofminutes ASC;
尝试换行查询:
SELECT *
FROM (SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson) t
ORDER BY noofminutes ASC;
或者简单地说:
SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson
ORDER BY noofminutes ASC;
尝试换行查询:
SELECT *
FROM (SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson) t
ORDER BY noofminutes ASC;
或者简单地说:
SELECT noofperson,
Sum(noofminutes) NoOfMinutes,
Min(starttime) StartTime
FROM alldata
GROUP BY noofperson
ORDER BY noofminutes ASC;
试试这个:
SELECT NoOfperson, NoOfMinutes FROM
(
select NoOfperson,SUM(NoOfMinutes)NoOfMinutes,MIN(StartTime)StartTime from AllData
group by NoOfperson
) AS Data
GROUP BY NoOfperson, NoOfMinutes, StartTime
order by StartTime
试试这个:
SELECT NoOfperson, NoOfMinutes FROM
(
select NoOfperson,SUM(NoOfMinutes)NoOfMinutes,MIN(StartTime)StartTime from AllData
group by NoOfperson
) AS Data
GROUP BY NoOfperson, NoOfMinutes, StartTime
order by StartTime
试试这个:
SELECT NoOfperson, NoOfMinutes FROM
(
select NoOfperson,SUM(NoOfMinutes)NoOfMinutes,MIN(StartTime)StartTime from AllData
group by NoOfperson
) AS Data
GROUP BY NoOfperson, NoOfMinutes, StartTime
order by StartTime
试试这个:
SELECT NoOfperson, NoOfMinutes FROM
(
select NoOfperson,SUM(NoOfMinutes)NoOfMinutes,MIN(StartTime)StartTime from AllData
group by NoOfperson
) AS Data
GROUP BY NoOfperson, NoOfMinutes, StartTime
order by StartTime
这个呢,
select * ,
sum(NoOfMinutes)over(partition by NoOfPerson,NoOfPerson order by NoOfPerson)
from @AllData
这个呢,
select * ,
sum(NoOfMinutes)over(partition by NoOfPerson,NoOfPerson order by NoOfPerson)
from @AllData
这个呢,
select * ,
sum(NoOfMinutes)over(partition by NoOfPerson,NoOfPerson order by NoOfPerson)
from @AllData
这个呢,
select * ,
sum(NoOfMinutes)over(partition by NoOfPerson,NoOfPerson order by NoOfPerson)
from @AllData
您正在按NoOfperson和StartTime分组,而您正在验证数据仅按NoOfperson分组-请重试(我编辑了我的答案),不需要派生表<代码>排序依据可以添加到
分组依据
之后。您正在按NoOfperson和StartTime分组,而您正在验证数据仅按NoOfperson分组-请重试(我编辑了我的答案),无需使用派生表<代码>排序依据可以添加到分组依据
之后。您正在按NoOfperson和StartTime分组,而您正在验证数据仅按NoOfperson分组-请重试(我编辑了我的答案),无需使用派生表<代码>排序依据可以添加到分组依据
之后。您正在按NoOfperson和StartTime分组,而您正在验证数据仅按NoOfperson分组-请重试(我编辑了我的答案),无需使用派生表<代码>订单依据可以添加到分组依据
之后。