首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >占SQL总数的百分比

占SQL总数的百分比
EN

Stack Overflow用户
提问于 2019-10-28 21:03:19
回答 1查看 60关注 0票数 0

我有一个具有下列列的表。我想知道每天有四个或更多的视频发布的百分比?做这件事最有效的方法是什么?

代码语言:javascript
复制
|  video_id  |  published_date  |
+------------+------------------+
|   abc      |     9/1/2018     |
|   dca      |     9/4/2018     |
|   5555     |     9/1/2018     |
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-28 21:37:58

Oracle的解决方案:演示

代码语言:javascript
复制
select sum(perc)  from (
select published_date
       , round(100*(count(*) / sum(count(*)) over ()),2) perc
       , count(published_date) cc
from dense_rank_demo
group by published_date)
where cc >= 4;

下面是对OP问题的补充解释:“您能解释这个函数应该完成什么吗?SUM(计数(*)) over (),2) perc”

  1. 首先,让我们澄清这个问题,然后说最后一部分", 2)“是从圆周函数中得到的,它把十进制的结果舍入为1,2小数(这就是为什么有数字2)。
  2. OVER部分指定分析函数操作的分区和顺序。因为没有指定任何内容,所以它将得到所有记录的总和(COUNT(*))。
  3. 我在这里添加了一些附加的select:演示,它可以帮助您更好地理解这个和(计数(*))的部分。
  4. 关于数字的解释" count (*)“给出了每个日期的总计数,因为我添加了这个”published_date组“。这意味着它在我的示例中给出了3个结果: 4、4和3。命令的SUM部分聚合如下: 4+4+3并返回11。

Server解决方案:演示

代码语言:javascript
复制
select sum(perc) Perc  from (
select published_date
       , round(Count(published_date)* 100 / (Select Count(*) From dense_rank_demo), 2) perc
       , count(published_date) cc
from dense_rank_demo
group by published_date) t
where cc >= 4;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58598389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档