Mysql 如何简化此查询?
问题1:Mysql 如何简化此查询?,mysql,sql,Mysql,Sql,问题1: SET @count = 0; UPDATE a_daily_copy_copy SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count where a_daily_copy_copy.Site_id = 1 and a_daily_copy_copy.Year=4 and a_daily_copy_copy.Billing_cycle=
SET @count = 0;
UPDATE a_daily_copy_copy
SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count
where a_daily_copy_copy.Site_id = 1
and a_daily_copy_copy.Year=4
and a_daily_copy_copy.Billing_cycle=1
ORDER BY date
查询2:修改了a\u每日副本。计费周期=2
SET @count = 0;
UPDATE a_daily_copy_copy
SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count
where a_daily_copy_copy.Site_id = 1
and a_daily_copy_copy.Year=4
and a_daily_copy_copy.Billing_cycle=2
ORDER BY date
我是一个初学者,到目前为止,我每次都通过编辑查询1手动运行查询,我知道两个查询都可以合并为一个查询
我试着按函数分组解决问题,但没能找到答案,请帮助我
已筛选表格:
在我看来,您可以:
SET @count = 0;
UPDATE a_daily_copy_copy
SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count where a_daily_copy_copy.Site_id = 1 and a_daily_copy_copy.Year=4 and a_daily_copy_copy.Billing_cycle IN (1, 2)
ORDER BY date
…除非我遗漏了除计费周期之外的两个查询之间的差异。您可以添加具有所需结果的示例记录吗?已添加表的屏幕截图!!从业务角度来看,这些子集是固定的吗(即,是否迟早需要以不同的方式计算累积计数?)如果是这样,我将去掉累积计数列,只需查询特定年份/计费周期/站点id中的记录计数(添加/减去任何其他限制)日期小于或等于特定日期的。如果累积总是按照这组条件进行分组,那么您的查询看起来不错,您无需进行任何更改来改进。建议查询您所建议的内容,即查询特定时间段内的记录数,该记录数大于或小于特定日期对我来说是有效的!!有点好奇,想知道有没有其他不同的方式获得!!