【问题标题】:Case statements with percentages and subqueries带有百分比和子查询的案例语句
【发布时间】:2013-06-04 02:02:24
【问题描述】:

您好,我正在尝试完成以下操作:

从城市表中选择名称,从国家表中选择名称。我想创建一个计算字段“GNPOverPop”,用于计算 GNP/城市人口并将该字段格式化为小数点后 6 位。之后,我想创建另一个计算字段来确定以下内容:

如果城市的人口为:

  1. 大于或等于 10% 的国家/地区人口然后将“10% 或更多”打印到计算的字段值中

  2. 大于或等于 5% 的国家/地区人口然后将“5% 或更多”打印到计算的字段值中

  3. 大于或等于 1% 的国家/地区人口然后将“1% 或更多”打印到计算的字段值中

  4. 不在上述任一类别中,然后将“小于 1%”打印到计算的字段值中

现在我正在处理以下查询,但是我在尝试找出 IF/Case 部分时遇到了障碍。

Select City.Name, Country.Name, 
       Format(Country.GNP / City.Population,6) AS GNPOverPOP
From City, Country
Limit 200;

值应如下所示:

| Name       | Name           | GNPOverPop  | PopGNPDesc  |
___________________________________________________________
| Charleston | United States  | 95.558200   | 10% or more |
| Carson     | United States  | 95.530312   | 10% or more |
| Odessa     | United States  | 95.312063   | 10% or more |
| Elgin      | United States  | 95.189469   | 10% or more |
| Kenosha    | United States  | 95.147965   | 10% or more |

感谢您提供的任何帮助

【问题讨论】:

    标签: mysql if-statement subquery percentage case-when


    【解决方案1】:

    这是条件部分

    SELECT ...
        (CASE WHEN GNPOverPOP >= 10 THEN "10% or more"
              WHEN GNPOverPOP >= 5 THEN "5% or more"
              WHEN GNPOverPOP >= 1 THEN "1% or more"
              ELSE "Less than 1%"
        END) AS PopGNPDesc
    FROM ...
    

    【讨论】:

    • 没关系,我发现了这个问题,非常感谢,非常感谢,
    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    相关资源
    最近更新 更多