Sql 求和和与运行求和,相异与运行相异

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

我想计算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 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