SQL中的“同类”分析,即对所有门店(不包括新门店和已关闭门店)的销售额求和
我想在SQL Server中进行分析。例如,我想总结整个时间段内销售额>0的所有门店的销售额,不包括新店或已关闭门店的销售额。有没有简单的方法SQL中的“同类”分析,即对所有门店(不包括新门店和已关闭门店)的销售额求和,sql,sql-server-2012,Sql,Sql Server 2012,我想在SQL Server中进行分析。例如,我想总结整个时间段内销售额>0的所有门店的销售额,不包括新店或已关闭门店的销售额。有没有简单的方法 只有门店1和门店3的销售额应计入总额,因为只有这两家门店在所有三个期间都有销售额。应排除存储2,因为它是新的,并且在第一个期间未运行。应排除存储4,因为它已关闭,但未在时段3内运行。此代码应返回预期结果: select period, sum(sales) as Sum from ( select period, count(*) over (pa
只有门店1和门店3的销售额应计入总额,因为只有这两家门店在所有三个期间都有销售额。应排除存储2,因为它是新的,并且在第一个期间未运行。应排除存储4,因为它已关闭,但未在时段3内运行。此代码应返回预期结果:
select
period,
sum(sales) as Sum
from
(
select
period,
count(*) over (partition by store) as period_count,
sales from table1
) data
where data.period_count=3
group by period
在以下条件中:其中data.period_count=3,3是存储必须存在的所需周期数,因此它排除了新存储和已关闭的存储
以下是使用CTE的代码-处理给定门店和期间的多个销售记录,并显示该期间的门店编号:
;with table2 as
(select
store,
period,
count(*) over (partition by store) as period_count,
sum(sale) as sale
from table1
group by store, period)
select
period,
count(store) as StoreNumber,
sum(sale) as Sum
from table2
where
table2.period_count=(select top 1
count(*) from table2
group by store
order by count(*) desc
)
group by period
此代码应返回预期结果:
select
period,
sum(sales) as Sum
from
(
select
period,
count(*) over (partition by store) as period_count,
sales from table1
) data
where data.period_count=3
group by period
在以下条件中:其中data.period_count=3,3是存储必须存在的所需周期数,因此它排除了新存储和已关闭的存储
以下是使用CTE的代码-处理给定门店和期间的多个销售记录,并显示该期间的门店编号:
;with table2 as
(select
store,
period,
count(*) over (partition by store) as period_count,
sum(sale) as sale
from table1
group by store, period)
select
period,
count(store) as StoreNumber,
sum(sale) as Sum
from table2
where
table2.period_count=(select top 1
count(*) from table2
group by store
order by count(*) desc
)
group by period
此代码应返回预期结果:
select
period,
sum(sales) as Sum
from
(
select
period,
count(*) over (partition by store) as period_count,
sales from table1
) data
where data.period_count=3
group by period
在以下条件中:其中data.period_count=3,3是存储必须存在的所需周期数,因此它排除了新存储和已关闭的存储
以下是使用CTE的代码-处理给定门店和期间的多个销售记录,并显示该期间的门店编号:
;with table2 as
(select
store,
period,
count(*) over (partition by store) as period_count,
sum(sale) as sale
from table1
group by store, period)
select
period,
count(store) as StoreNumber,
sum(sale) as Sum
from table2
where
table2.period_count=(select top 1
count(*) from table2
group by store
order by count(*) desc
)
group by period
此代码应返回预期结果:
select
period,
sum(sales) as Sum
from
(
select
period,
count(*) over (partition by store) as period_count,
sales from table1
) data
where data.period_count=3
group by period
在以下条件中:其中data.period_count=3,3是存储必须存在的所需周期数,因此它排除了新存储和已关闭的存储
以下是使用CTE的代码-处理给定门店和期间的多个销售记录,并显示该期间的门店编号:
;with table2 as
(select
store,
period,
count(*) over (partition by store) as period_count,
sum(sale) as sale
from table1
group by store, period)
select
period,
count(store) as StoreNumber,
sum(sale) as Sum
from table2
where
table2.period_count=(select top 1
count(*) from table2
group by store
order by count(*) desc
)
group by period
你也可以检查这个。我还添加了Maxperiod
你也可以检查这个。我还添加了Maxperiod
你也可以检查这个。我还添加了Maxperiod
你也可以检查这个。我还添加了Maxperiod
可以指定表结构和列吗?到目前为止,您尝试了什么?是否可以指定表结构和列?到目前为止,您尝试了什么?是否可以指定表结构和列?到目前为止,您尝试了什么?是否可以指定表结构和列?到目前为止,您尝试了什么?您能给出一个如何应用MAXPeriod的建议吗?这样无论周期数多少,查询都能正常工作?您可以将条件数据。周期计数=3更改为数据。周期计数=从表1中选择前1个计数*按存储顺序分组按计数*描述。应该从现有记录中获取最大数量。如何计算每个期间的存储数量?如果我们进行类似分析,则每个期间的数字应相同。请注意,应在期间内对门店变量进行计数。我在同一期间内有几家门店的销售记录,即期间1中的门店1可以销售5次。请注意,对门店数量进行计数可能不足以信任结果。例如,如果在给定的时间段内,一家店铺关闭,另一家店铺打开,存储计数不会更改,但您将比较来自不同存储集的数据。如果存储打开或关闭,其周期计数将小于最大可能数,其他存储将具有更多的周期,因此不会包含在分析中。请您给出如何应用MAXPeriod的建议,以便无论何时都可以执行查询周期数?您可以将条件数据更改为数据。周期计数=3为数据。周期计数=从表1中选择前1个计数*按存储顺序按计数*描述分组。应该从现有记录中获取最大数量。如何计算每个期间的存储数量?如果我们进行类似分析,则每个期间的数字应相同。请注意,应在期间内对门店变量进行计数。我在同一期间内有几家门店的销售记录,即期间1中的门店1可以销售5次。请注意,对门店数量进行计数可能不足以信任结果。例如,如果在给定的时间段内,一家店铺关闭,另一家店铺打开,存储计数不会更改,但您将比较来自不同存储集的数据。如果存储打开或关闭,其周期计数将小于最大可能数,其他存储将具有更多的周期,因此不会包含在分析中。请您给出如何应用MAXPeriod的建议,以便无论何时都可以执行查询周期数?您可以将条件数据更改为数据。周期计数=3为数据。周期计数=从表1中选择前1个计数*按存储顺序按计数*描述分组。应该从现有记录中获取最大数量。如何计算每个期间的存储数量?如果我们进行类似分析,则每个期间的数字应相同。请注意,计数应在我有几笔销售的期间内对Store变量进行
同一时期内一家门店的s记录-即,时段1内的门店1可能销售5次。请注意,统计门店数量可能不足以信任结果。例如,如果在给定的时间段内,一家店铺关闭,另一家店铺打开,存储计数不会更改,但您将比较来自不同存储集的数据。如果存储打开或关闭,其周期计数将小于最大可能数,其他存储将具有更多的周期,因此不会包含在分析中。请您给出如何应用MAXPeriod的建议,以便无论何时都可以执行查询周期数?您可以将条件数据更改为数据。周期计数=3为数据。周期计数=从表1中选择前1个计数*按存储顺序按计数*描述分组。应该从现有记录中获取最大数量。如何计算每个期间的存储数量?如果我们进行类似分析,则每个期间的数字应相同。请注意,应在期间内对门店变量进行计数。我在同一期间内有几家门店的销售记录,即期间1中的门店1可以销售5次。请注意,对门店数量进行计数可能不足以信任结果。例如,如果在给定的时间段内,一家商店关闭,另一家商店打开,则商店计数不会改变,但您将比较来自不同商店集的数据。如果一家商店打开或关闭,其周期计数将少于最大可能数,其他商店将有更多的周期,因此不会包含在分析中。