sql - 在时态表和 AVERAGE 中成功查询后返回非重复值
问题描述
我正在使用 SQL Server,并且我有一个成功的查询,它在我非常大的时间数据集中计算“MinutesOut”。由于记录的数量,我想开始消除无用的行并总结到当天。
查询成功:
select
t.*,
case
when CustomersOut > 0
then datediff(minute, RecordedDateTime,
lead(RecordedDateTime) over (partition by UtilityName, StateName, CountyName, CityName
order by RecordedDateTime))
end MinutesOut
from
MyTable1 t
我想消除 'MinutesOut' 为 NULL 的所有行
每当重复不同的记录“UtilityName”、“StateName”、“CityName”、“FullFIPSid”、“RecordedDateTime”时,所有记录都可以删除。
最后,是否可以将 DATETIME 列汇总到一天而不是每天 1000 倍?那就是计算每个不同的“UtilityName”+“StateName”+“CityName”+“FullFIPSid”+“RecordedDateTime”的平均“MinutesOut”
解决方案
如果您的表有一个要加入的 ID,您可以执行以下操作来删除 NULL MinutesOut
SELECT
t0.*,
MinutesOut
FROM
MyTable1 t0 INNER JOIN ( SELECT CASE WHEN CustomersOut > 0
THEN datediff(minute, RecordedDateTime, lead(RecordedDateTime) over (partition
by UtilityName, StateName, CountyName, CityName
order by RecordedDateTime))
END MinutesOut from MyTable1) t1 ON t0.ID = t1.ID WHERE MinutesOut IS NOT NULL
推荐阅读
- prometheus - Kubernetes cadvisor 端点未被普罗米修斯抓取
- android - 如何将内容包装在 android 的 AutoCompleteTextView 中
- mysql - 用 CAST 选择:成功;使用 CAST 更新:失败
- nginx - 如何阻止 Nginx 充当显式代理?
- flask - wtforms 中的后处理字段数据
- flutter - 限制可拖动小部件中手势检测器的大小
- c# - 如何对链接数据库实体进行递归搜索?
- c# - 绑定过滤器不存在
- java - “FCM”应用程序在此行崩溃 getToken() “java.lang.IllegalStateException:默认 FirebaseApp 未在此过程中初始化”
- azure-cosmosdb - 使用 Xml-configuration 通过 serilog 登录到 Cosmos DB