2012-02-22 76 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中,爲了避免整數除法很重要!