Sql 求和和与运行求和,相异与运行相异
我想计算sum,运行sum,distinct,运行distinct-最好是一个查询 独特的和总和很简单:Sql 求和和与运行求和,相异与运行相异,sql,Sql,我想计算sum,运行sum,distinct,运行distinct-最好是一个查询 独特的和总和很简单: select store, day, count(distinct food) as uniques, sum(quantity) as total from test group by store, day 但我希望输出是: 百货商店 白天 独特的 run_uniques 全部的 总计 101 2021-01-01 4. 4. 12 12 101 2021-01-02 3. 5. 10
select store, day, count(distinct food) as uniques, sum(quantity) as total
from test
group by store, day
但我希望输出是:
百货商店
白天
独特的
run_uniques
全部的
总计
101
2021-01-01
4.
4.
12
12
101
2021-01-02
3.
5.
10
22
首先:始终以正确的数据类型存储数据,日期应为日期列
计算sumquantity聚合的运行总和非常简单,只需将其嵌套在一个窗口函数中:SUMSUM。。。结束
计算每家商店独特食品的运行数量更为复杂,因为您需要在分组之前获得独特食品的滚动数量,并且我使用的SQL Server中没有COUNTDISTINCT窗口函数
所以我计算了所有日子里每个商店和食物的行数,然后我们只计算得到1的次数,也就是说,这是我们第一次看到这种食物
选择
t、 商店,
t、 一天,
独特的食物,
当t.rn=1时运行_uniques=sumcase,然后运行1 ELSE 0结束
按t.store ORDER按t.day行进行分区之前无边界,
总计=总数量,
总运行量=总消耗量
按t.store ORDER按t.day行进行的分区上无边界的
从…起
选择*,
按商店分区的行数,按天的食品订单
从测试
T
按t.store、t.day分组;
用您正在使用的数据库标记您的问题。我已删除了冲突的RDBMS标记。。。请重新添加一个相关标记。@DaleK-任何ANSI查询或任何RDBMS都适合我。如果需要,我可以翻译给别人。而且,许多查询在db'sBrilliant之间并不冲突!在SQL和Presto上工作。仅供参考,它不在配置单元QL中运行-未能将窗口调用拆分为组。无效的列引用“rownum”
select store, day, count(distinct food) as uniques, sum(quantity) as total
from test
group by store, day