2012-02-22 41 views
0

我需要这样的东西得到percetage在一个查询

$query = SELECT COUNT(id) as user_in FROM <table_user> WHERE user= 11; 
$query = SELECT COUNT(id) as total FROM <table_user> WHERE 1 ; 
$percetage = $user_in/$total * 100;` 

在一个查询。

请帮

回答

2
SELECT 
    SUM(IF user=11,1,0)*100/COUNT(*) AS percentage 
FROM table_user; 
+0

为什么有人总是鞭打我这种类型的查询! – 2012-02-22 10:26:09

+0

非常感谢您的帮助先生。 – 2012-02-23 18:50:30

0

这里虽然是好简单的一个

SELECT SUM(IF(user=11,1,0))/COUNT(id) AS percentageAsDecimal FROM <table_user> 

只是一个警告,如果在,因为它会分裂没有行由0

0

这将错误尝试

SELECT COUNT(id)/(SELECT COUNT(*) FROM table_user) * 100 AS PERCENTAGE 
FROM table_user; 
WHERE user= 11; 
+0

我非常感谢回答此查询的所有人。 – 2012-02-23 18:50:54

0

为了保持您的方法与2初始陈述,你可以结合你的陈述(笛卡尔积)并做你的计算。

SELECT your_calculation FROM select_statement1, select_statement2; 

在您的例子这相当于

SELECT 100.0*user_in/total FROM 
(SELECT COUNT(id) as user_in FROM <table_user> WHERE user= 11), 
(SELECT COUNT(id) as total FROM <table_user> WHERE 1); 

我只是使用SQLite测试此,由MySQL应该差不多了。在SQLite 100.0中,为了避免整数除法很重要!