如何对两个查询的结果进行数学运算

时间:2014-03-06 16:31:14

标签: sql sql-server subquery

我必须得到每个查询的结果

第一次查询:

SELECT  [xcv],  COUNT( * ) AS Total
  FROM [my_table]  
 GROUP BY [xcv]

第二个查询:

SELECT [xcv],  COUNT( * ) AS Total
      FROM [my_table]   
    WHERE=[result]='ok'
    GROUP BY [xcv]

我想要做的是获得 - >的值[(first_query / second query)* 100]

我想在我的表格中找到每个[xcv]的结果......

任何想法我怎么做?

谢谢大家

2 个答案:

答案 0 :(得分:1)

SELECT t1.[xcv], 
       (t1.total/t2.total)*100
  FROM (SELECT [xcv],  
               COUNT( * ) AS Total
          FROM [my_table]  
        GROUP BY 
               [xcv]
        ) t1 JOIN (
                   SELECT [xcv], 
                          COUNT( * ) AS Total
                     FROM [my_table]   
                    WHERE [result]='ok'
                    GROUP BY 
                          [xcv]
                   ) t2
                  ON t1.[xcv]=t2.[xcv]

我还从=删除了WHERE=[result]='ok'个符号 - 我认为您输了错误。

答案 1 :(得分:0)

一个查询:

SELECT [xcv],
       (SUM(CASE 
                 WHEN [result] = 'ok' 
                      THEN 1 
                      ELSE 0 
                 END
           )/COUNT( * )
        ) * 100
  FROM [my_table]
GROUP BY [xcv]