【问题标题】:Calculate and average range [closed]计算和平均范围
【发布时间】:2020-09-12 06:48:21
【问题描述】:

在数据库的表aircraft中计算波音型号的平均航程。

这是aircraft 表:

我知道

SELECT AVG(range) FROM aircraft; 

但我只需要波音型号的范围。我试过了

WHERE model LIKE "B%" 

因为它会选择以 B 开头的行,但我仍然收到错误。

更新: 根据要求,我的完整查询是:

SELECT AVG(range) 
FROM aircraft 
WHERE model LIKE "B%"

我收到以下错误:

ERROR: column "B%" does not exist LINE 3: WHERE model LIKE "B%

【问题讨论】:

  • 请添加您的查询、您的预期结果和完整的错误信息。
  • 你遇到了什么错误?
  • => SELECT AVG(range) -> FROM aircraft -> WHERE model LIKE "B%";错误:列“B%”不存在第 3 行:WHERE model LIKE “B%”;预期结果应为 avg: 73.33333
  • 从逻辑上讲,无论如何 Bombardier 也以 B 开头 - (除非 Bombardier 是 Boing 的一部分)。ALSO range 是保留字,需要反引号。
  • 尝试使用单引号 LIKE 'B%';

标签: sql sql-server select


【解决方案1】:

SQL 中的字符串文字用单引号 (') 表示,而不是双引号 ("):

SELECT AVG(range)
FROM   aircraft
WHERE  model LIKE 'B%'
-- Here ----------^--^

另外请注意,此查询将包括型号“Bombardier CRJ-200”,因此您可能需要明确拼写波音:

SELECT AVG(range)
FROM   aircraft
WHERE  model LIKE 'Boeing%'

【讨论】:

    【解决方案2】:

    我认为你需要Regex。 试试这段代码:

    SELECT AVG(range)
    FROM aircraft
    WHERE model LIKE ‘[B][o][e][i][n][g]%’
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 2021-06-17
      • 1970-01-01
      • 2021-03-29
      • 2020-06-25
      • 1970-01-01
      • 2021-08-21
      相关资源
      最近更新 更多