2012-03-27 14 views
0

我會盡量以儘可能簡單的方式來解釋。我希望能夠統計每天在數據庫表中輸入值的次數。想知道給定日期的值出現的次數

基本上,如果數據輸入一次,它會作爲一個單一的計數,如果數據輸入兩次,它會計爲雙倍,如果數據輸入三次,它會算作一個高音。

然後,我想要能夠計算在特定時間範圍內(每年4月至4月)出現多少個單曲,雙打和三重奏。那麼當然呼應出來到PHP頁面,如下所示:

單打 - 23個 雙打 - 69個 三串 - 3

我試圖在數據庫表中新增round_id列,因爲我以爲,如果這是默認1,我可以以某種方式計算每天有多少1可以工作,但我完全卡住了。

任何幫助將不勝感激!

+3

請給表格佈局('DESCRIBE')和一些示例數據 – Kaii 2012-03-27 16:07:38

+0

對不起凱伊我是新來的,所以只是注意到你的評論我會盡力解釋更多。 – user1296020 2012-03-27 20:01:21

+0

對不起凱伊我是新來的,所以只是注意到你的評論我會盡力解釋更多。 這是一個球童日誌,我正在爲我的工作作爲一個球童建設。我每天都要填寫這些字段,如果我做兩輪,我會填寫兩次,所以我希望將其計爲雙輪。 目前表格看起來像這樣,雖然它不是最終的。 數據庫表: 輪 日期 round_length 當然 additional_caddies 工資 筆記 round_id 我已成功地呼應了總髮這僅僅是最新的「圓」,但做什麼,我想要的是多一點比我對php和mysql的知識還可以延伸。 – user1296020 2012-03-27 20:11:10

回答

0

不知道的結構,這裏是我能拿出最好的SQL: SELECT COUNT(DISTINCT field) FROM table GROUP BY field

就會計算領域出現的每個值的數量。

1

如果我理解你的權利,開始,我們可以通過每天都會收到數:

SELECT COUNT(*) AS cnt, `date` 
FROM `table` 
GROUP BY `date` 

這會給你的每一天記錄的計數。

然後,我們可以換,在另一個查詢:

SELECT dailycount.daycnt AS `type`, COUNT(*) AS cnt 
FROM (
    SELECT COUNT(*) AS daycnt, `date` 
    FROM `table` 
    GROUP BY `date` 
) dailycount 
WHERE `date` BETWEEN start_date AND end_date 
GROUP BY daycnt 

這會給你這樣的事情:

type cnt 
1 23 
2 69 
3 3 

其中type將是你的單打,雙打等

+0

謝謝瑞恩,我在這裏掙扎一點。我可以使用您的第一個SELECT COUNT來顯示每天是1,2還是3。但是,當我嘗試使用第二個SELECT COUNT時,它一直說「數據庫查詢失敗:每個派生表都必須具有自己的別名」。如果你不介意的話,我可能需要更多的PHP方面的幫助。 – user1296020 2012-03-27 18:41:28

+0

對不起,我修改了我的查詢以在子查詢上使用別名 - 應該修復它。 – 2012-03-27 18:51:09

+0

我仍然無法使它工作。我如何在PHP中執行此操作?我可以看到第一個數字,但第二個SELECT又出現錯誤。我如何在下面顯示回顯出來? – user1296020 2012-03-27 19:55:18

相關問題