如何在数学表达式中使用SQL语句的结果?

时间:2011-11-04 19:56:04

标签: sql sqlite

我有两个SELECT语句,每个语句都返回一个数字,我想把它们分开。 如果它会起作用的话,如下所示:

SELECT
    SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("DuplicatedRule", "OldRule", "RevRule", "TmpRule")
/
    SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("Total")

得到'查询错误:接近“SELECT”:语法错误无法执行语句'。

添加括号无济于事。

怎么做?

我正在使用Sqliteman

2 个答案:

答案 0 :(得分:3)

您需要添加括号:

SELECT
    (SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("DuplicatedRule", "OldRule", "RevRule", "TmpRule")
    )
    /
    (SELECT
        SUM(SIZE)
    FROM
        GLOBAL_STATS_V_M
    WHERE
        ID IN ("Total")
    )

答案 1 :(得分:0)

这里有两个问题。

  1. 两个子选择语句都需要括号。
  2. 您需要使用FROM DUAL完成外部语句。

    选择      (选择....)/(选择....)为总数   从      双

  3. 我实际上更愿意以不同的方式编写查询以保持清洁。

    select subtotal.total / alltotal.total
      from (select sum(size) as total .... where id in ("Duplic....) ) subtotal,
           (select sum(size) as total .... where id in ("total") ) alltotal