sql - Hive/Impala 更改表计数
问题描述
我有一个发布日期列表(一些过去和一些未来)和一个注册号列表。
release date registration
01/01/2019 R1
02/01/2019 R2
07/02/2019 R3
我基本上想创建一个新表,该表将显示每天(未来日期)的注册号总数。
date total registration numbers
05/02/2019 2
06/02/2019 2
07/02/2019 3
我知道如何使用 count(*) 来查找注册数量,并且我考虑过将其与未来日期的日历表结合起来。
解决方案
如果你有一个日历表,你可以使用窗口函数:
select c.date,
count(t.date) as registrations_on_day,
sum(count(t.date)) over (order by c.date) as registrations_through_day
from calendar c left join
t
on c.date = t.date
group by c.date
order by c.date;
推荐阅读
- php - 在 Laravel 中使用中间件的 Html minifier
- vb.net - 如何摆脱数组中的图片?
- javascript - 用于可视化、操作和导出数据点的 JavaScript?
- java - 使用 PHP 将值从 Android Studio 发送到 mySQL 数据库
- javascript - 如何在点击后立即更改手风琴的图标
- html - 水平居中堆叠图像
- nginx - 如何以url显示的文件夹少于实际文件夹的方式配置nginx?
- docker - Dockerized Phoenix/Elixir App 拒绝所有 HTTP/socket 请求
- reactjs - 响应 onChange 函数。没有什么像事件一样通过?
- elixir - 使用 scrivener 在 phoenix 框架中删除表单请求后如何重定向回当前页面