【问题标题】:Finding the AVG寻找 AVG
【发布时间】:2022-07-22 14:43:41
【问题描述】:

我正在为我的投资组合做一个小项目,并且对 SQL 比较陌生,遇到了一个没有指导的项目,有这个问题。

在加拿大,截至 2022-01-01 的一年中,有多少城市的城市平均气温低于 0 度?这就是我所拥有的:

SELECT COUNT(temp) 
FROM table
WHERE date = '2022-01-01'
HAVING AVG(temp) < 0

【问题讨论】:

  • 您的问题不清楚。请为您的表格添加示例数据。
  • 我删除了冲突的 DBMS 标签。请为您真正使用的数据库产品添加一个标签。
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
  • '这将返回 0 个结果,这在给定数据集的情况下不应该是这种情况。' - 为什么不考虑没有分组发生
  • 如果你想在过滤器中使用一个城市的平均温度,你必须GROUP BY城市栏。

标签: sql


【解决方案1】:

解构你的问题:

  1. 只选择有效的时间和日期
  2. 按城市分组
  3. 选择城市和平均值
  4. 只考虑低于 0 的分组值
    select city, avg(temp)
     where temp between -40 and 40
       and date = '2022-01-01'
     group by city
    having avg(temp) < 0

【讨论】:

  • 放入子查询和主查询count个城市?
  • @P.Salmon 是的,应该让你算数
【解决方案2】:
SELECT city,COUNT(temp) 
FROM table
WHERE date = '2022-01-01'
group by city
HAVING AVG(temp) < 0

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案3】:

//--子查询--过滤平均温度

选择计数(*) 从(选择城市,平均(温度) 从表 日期 = '2022-01-01' 按城市分组 有 AVG(temp)

【讨论】:

    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 2023-03-13
    • 2022-01-23
    • 2011-02-23
    • 2019-04-16
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多