2011-10-10 33 views
0

我讀here我可以在COUNT中包含一個參數來返回一個計算值。我正在嘗試以下,但我錯過了一些東西。你能幫我嗎?謝謝!檢索計算表達式的COUNT

mysql_select_db(DATABASE_NAME, $connection); 
    $client = "demo/"; 
    $result = mysql_query 
    (
     "SELECT 
     COUNT(page_max > 126) AS completed 
     FROM " .SESSIONDB. " 
     WHERE client = '$client' 
     AND page = 'interaction.php' 
     " 
    ); 
    if(mysql_error()) die(DIRECTORY_TITLE . " - Error DBA110 " . mysql_error()); 
    // output THE QUERY 
    while($row = mysql_fetch_assoc($result)) 
    { 
     echo $row['completed']; 
    } 
+0

請在此處添加您的餐桌細節。 –

+0

你正在收到什麼錯誤消息? –

回答

0

這應該做你想要什麼:是不是NULL

SELECT COUNT(IF(page_max>126,1,NULL)) AS completed .... 

COUNT次數進行計數。該表達式將page_max大於126的任何內容變爲1以及任何不屬於NULL的內容。

這就是說,爲什麼不把page_max移動到WHERE的條件?

+0

輝煌謝謝 - 因爲我想返回一些具體的計數,從相同的查詢,page_min,page_max,page_average – giles

1

嘗試

"SELECT 
    COUNT(*) AS completed 
    FROM " .SESSIONDB. " 
    WHERE client = '$client' AND page_max > 126 
    AND page = 'interaction.php'" 
1

這個怎麼樣

SELECT 
SUM(CASE WHEN page_max > 126 THEN 1 ELSE 0 END) AS completed 
FROM table 
WHERE client = '$client' 
AND page = 'interaction.php' 

或者正如尼科洛尼說,移動page_max到WHERE條件,如果你不需要的物品的總數。