如何在特定日期使用计数结果?

时间:2016-09-29 16:09:55

标签: sql sql-server

我有一个这样的表,我正在使用SSMS从多个表构建查询:

2016-09-20  Mike  8
2016-09-20  Dave  8
2016-09-20  John  8
2016-09-20  Mike  8
2016-09-21  John  8
2016-09-22  Dave  8 

我需要这个结果(需要计算在同一日期重复名称的次数,并在结果之间划分第3列值):

2016-09-20  Mike  4 -- bold
2016-09-20  Dave  8
2016-09-20  John  8
2016-09-20  Mike  4 -- bold
2016-09-21  John  8
2016-09-22  Dave  8 

1 个答案:

答案 0 :(得分:0)

我相信这是你正在寻找的:

select 
  date_column, 
  name_column, 
  int_column/count(*) over (partition by date_column, name_column) AS int_result
from yourtable

介绍窗口函数count(*),它会计算具有相同date_column, name_column的行,并将int_column除以结果。

结果:

 date_column | name_column | int_result
-------------+-------------+-----------
 2016-09-20  | Dave        |         8
 2016-09-20  | John        |         8
 2016-09-20  | Mike        |         4
 2016-09-20  | Mike        |         4
 2016-09-21  | John        |         8
 2016-09-22  | Dave        |         8