不确定标题是否足够可读,请尝试在此处更好地解释
我具有以下架构的数据:
ID | Date | Unit1 | Hours | TENURE_Hours
"Alex" | '2018-11-04' | 21 | 12 | 134
"Adam" | '2018-11-04' | 21 | 26 | 156
"John" | '2018-11-04' | 21 | 32 | 122
"Alex" | '2018-11-06' | 21 | 67 | 146
"Adam" | '2018-11-06' | 21 | 74 | 182
"John" | '2018-11-06' | 21 | 45 | 154
"Alex" | '2018-11-11' | 21 | 22 | 213
"Adam" | '2018-11-11' | 21 | 22 | 256
"John" | '2018-11-11' | 21 | 22 | 199
我想要实现的是将每周的拆分次数与一周中的最高次数相结合
我尝试使用MAX()
,但它会返回整个范围内的最大值,如果我尝试提取前10个月的数据,它将在此时间段内(而非特定的一周)返回最大值
在上面的示例中,我希望拥有:
Week | ID | TENURE_Hours
45 | "Alex" | 146
45 | "Adam" | 182
45 | "John" | 154
46 | "Alex" | 213
46 | "Adam" | 256
46 | "John" | 199
您怎么看?有办法吗?
我正在使用Microsoft SQL Server,但我认为可以在每个SQL引擎中解决此问题
预先感谢
答案 0 :(得分:0)
这是您想要的吗?
select year(date) as yyyy, datepart(week, date) as wk, id, max(tenure_hours)
from t
group by year(date), datepart(week, date), id
order by yyyy, wk, id;