SQL查询以使用group by和aggegate函数创建具有现有数据操作和操作的新表[关闭]

Posted

技术标签:

【中文标题】SQL查询以使用group by和aggegate函数创建具有现有数据操作和操作的新表[关闭]【英文标题】:SQL query to create a new table with existing data manipulation and operation with group by and aggegate function [closed] 【发布时间】:2020-05-16 07:49:53 【问题描述】:

我有一张如下表。

month   year    country test    affected    cases
4   2020    A   5   2   4
4   2020    A   57  10  20
4   2020    A   6   3   5
3   2020    A   9   5   7
3   2020    A   0   0   0
3   2020    A   6   2   4
1   2019    A   4   1   3
1   2019    A   2   1   1
4   2020    B   5   2   4
4   2020    B   57  10  20
4   2020    B   6   3   5
3   2020    B   9   5   7
3   2020    B   0   0   0
4   2019    C   6   3   5
1   2019    C   4   1   3

那我要做下面的操作

最后我想得到下面的输出。

这意味着我必须将月份中的所有测试值相加,例如 4 。 4 表示四月。并将 4 显示为 April 等等。

我怎样才能做到这一点?

我在下面尝试过。但没有成功。

     SELECT month, year ,sum(cases/Tests*100%) as caseRate, sum(affected/cases * 100%) as affectedrate ,country FROM csv group by country ,month ,year") 

【问题讨论】:

请将代码和数据作为文本发布,而不是images 标题描述了你必须做什么——你有具体的问题吗? 因为我是新手,这个问题对我来说看起来更难。我需要解决这个问题的方法 请查看dev.mysql.com/doc/refman/8.0/en/group-by-functions.html 和meta.***.com/questions/334822/… 我也喜欢您的个人资料列表,列出了 3 个(锥体)sql 方言的经验 @scaisEdge 我试过这个,但没有运气。 SELECT month, year ,sum(cases/Tests*100%) as caseRate, sum(affected/cases * 100%) as affectedrate ,country FROM csv group by country ,month ,year") 【参考方案1】:

我认为这只是一个聚合查询:

select month, year, country,
      sum(cases) * 100 / sum(test) as case_rate,
      sum(affected) * 100 / sum(cases) as affected_rate
from t
group by month, year, country;

【讨论】:

【参考方案2】:

你可以试试这个方法

    SELECT month
        ,  monthname(str_to_date(MonthNum,'%m')) Monthname
        , year 
        ,country 
        , sum((cases)/sum(Tests))*100 as caseRate
        , sum((affected)/sum(cases))*100 as affectedrate 
    FROM csv
    group by country ,month , Monthname, year

【讨论】:

我必须将 4 显示为月份名称 April。或 3 作为三月。怎么可能 @MahmudRiad 答案已更新 .. 带有月份名称

以上是关于SQL查询以使用group by和aggegate函数创建具有现有数据操作和操作的新表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

SQL group by分组查询

如何更新我的查询以符合 sql_mode=only_full_group_by 启用? [复制]

与 group by 一起使用的 sql.xml 中的查询是不是正确?

使用 avg 和 group by 的 SQL 查询

查询没有重复和聚合函数或 GROUP BY 子句问题。 - 重复

T-SQL GROUP BY 也使用 JOIN、聚合和外部引用错误