sql - 查询求和和计数
问题描述
我的数据是这样的
Count years
1 2020-08-11
1 2020-07-11
1 2019-09-01
1 2019-08-16
1 2019-05-04
1 2018-06-11
我正在写一个查询,我必须找到例如 <= 2019 年 5 月 4 日的年份计数,我需要找到小于该日期的所有日期的计数,即“2019-05-04”计数将为 1然后将计数加 1。
我写了这样的查询:
with sum_count as(
select count(*) as 'Counts', years from [practice].[dbo].[People]
where years<='2019-05-04'
group by years)
select sum(Counts) + 1 as Sum
from sum_count
您能否帮助对所有日期(例如 2020 年 8 月 11 日)做同样的事情,计数应为 5,总和为 6
解决方案
您可以通过 select 语句非常简单地实现这一点,而无需 cte:
Declare @td datetime = '20190504'
SELECT COUNT([years])+1 FROM [practice].[dbo].[People] Where [years] <= @td
如果这件事你会重复很多,你可以把它作为一个存储过程
CREATE PROC proc_name (@dt datetime)
as SELECT COUNT([years])+1 FROM [practice].[dbo].[People] Where [years] <= @td
你会这样称呼它
exec proc_name ('20200801')
推荐阅读
- javascript - 我可以从字符串中“导入” React CSS 模块吗?
- python - 提取 body/p 标签中的所有文本
- .net - .net 标准 - 如何将 flurl 与 polly 一起使用
- python - 为什么使用 Dota2 Python API 时 fetch_profile_card 什么都不返回?
- flutter - Flutter Timer 调用函数
- forms - 保存表单识别数据库表中的扫描数据
- sql-server - 无法使用 ADF 将数据从 ADLS gen2 复制到 SQL Server
- arrays - Ruby 数组数组,根据数组中的唯一键将它们合并为一个数组
- c++ - 使用类外的函数
- python-3.x - 在 python 3 中,如何正确地将变量返回给函数?