我正在尝试编写一个T-SQL查询,在一段时间内查找表中的条目数量,然后按分钟(条目/分钟)对它们进行分组。 但是我不能用0条目来显示会议记录。
我的查询如下:
select
[Minute],
Files
from
(
select
(DATEDIFF(MINUTE, '2017-02-02 17:00:00.000', RegTime) / 1) as [Minute] ,
count(*) as Files
from TransferLog
WHERE RegTime BETWEEN '2017-02-02 17:00:00.000' AND '2017-02-03 04:00:00.000'
group BY
(DATEDIFF(MINUTE, '2017-02-02 17:00:00.000', RegTime) / 1)
) x order by [Minute]
任何想法?
EDIT1。例外输出将显示分钟,表中没有条目。此外,当发生这种情况时,查询仍然无法使用,因为我无法知道哪一分钟没有数据。例如,如果我想要800分钟的数据但是20分钟没有数据写入表格,那么这只会显示780分钟的数据。有没有为此目的排序数据或修改查询?
Expected output:
Minute | Files
0 685
1 0
2 672
3 0
4 415
5 434
6 746
-
Current Output:
Minute | Files
0 685
1 672
2 415
3 434
4 746
答案 0 :(得分:0)
您可以创建一个临时表,其中包含您需要的所有分钟数(从1到最大分钟)(例如使用this tecnique),然后您可以将临时表的数据表连接到空值用零。
因此,您应该将所有分钟列在您的值中,其他地方有数据和零。
以下是代码:
public class PagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> listFragments;
public PagerAdapter(FragmentManager fm, List<Fragment> listFragments) {
super(fm);
this.listFragments = listFragments;
}
@Override
public Fragment getItem(int i) {
return listFragments.get(i);
}
@Override
public int getCount() {
return listFragments.size();
}
}