gpt4 book ai didi

sql - 如何通过按周分组的列值计数来计算百分比?

转载 作者:行者123 更新时间:2023-12-04 08:32:51 24 4
gpt4 key购买 nike

我有一个像这样的表 View :

week    ColB    ColF
---------------------
45 1234 PART
45 8215 TEMP
45 2834 PART
45 4152 PART
45 5775 TEMP
45 6527 PART
45 1162 TEMP
45 9154
45 2162
46 4232 PART
46 3215 PART
46 5834 PART
46 6152 PART
46 7775 TEMP
46 8527 PART
46 9162 TEMP
46 2354
46 2562
46 9762
...
...
...
现在每周我都需要做以下事情:
  • 对于每周,总共有多少 PARTTEMP在那里。让我们称之为 total .在 ColF除了 PART 之外,我还可以有其他值和 TEMP像空字符串或任何其他值。我只需要数数 PARTTEMP只要。
  • 每周,有多少 TEMP在那里。让我们称之为 temp .
  • 对于每周,除 temp/total并得到百分比。

  • 所以输出应该是这样的。基本上按周列分组。
    week    ratio
    ---------------------
    45 5.5%
    46 4.3%
    47 2.3%
    48 1.7%
    我正在尝试这样但不知何故不完全理解如何实现上述结果?我下面的查询是错误的 -
    select week, (SELECT week, count(*) FROM process WHERE ColF = 'TEMP' group by week) / count(*)
    from process where ColF IN ('PART', 'TEMP')
    group by week
    order by week
    这有可能吗?

    最佳答案

    您可以使用条件聚合。 avg()计算比率很方便:

    select week, avg(case when colf = 'TEMP' then 100.0 else 0 end) as ratio
    from process
    where colf in ('PART', 'TEMP')
    group by week

    关于sql - 如何通过按周分组的列值计数来计算百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64937569/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com