Sql 如何根据两个查询的结果进行数学运算
我必须检查每个查询的结果 第一个问题:Sql 如何根据两个查询的结果进行数学运算,sql,sql-server,subquery,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] 我想做的是得到->[(第一次查询/第二次查询)*100]的值 我想要表格中每个[xcv]的结
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]
我想做的是得到->[(第一次查询/第二次查询)*100]的值
我想要表格中每个[xcv]的结果
你知道我怎么做吗
谢谢大家
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'
中删除了=
符号-我认为您输入错误。一个查询:
SELECT [xcv],
(SUM(CASE
WHEN [result] = 'ok'
THEN 1
ELSE 0
END
)/COUNT( * )
) * 100
FROM [my_table]
GROUP BY [xcv]
谢谢,伙计,效果很好。我可以再添加一列,告诉我每个[xcv]在我的表中存在多少次吗?
t1。总计是该列。只需将其添加到主选择