2016-05-17 36 views
1

我確信這很簡單,但我無法弄清楚我在這裏做了什麼錯誤。我試圖在過去7天內獲得某些字段的總數,並按日期和字段對它們進行分組。 例子:選擇過去7天的字段總數,按日期和值分組

下表:

TABLE API_LOG 
    COLUMNS 
     customer 
     ip_address 
     date_logged 
     endpoint 

所以我想獲得總端點要求每個客戶和IP_ADDRESS過去7天。我已經組織了每日總計,但出於某種原因無法將其正確分組。

SELECT date_logged AS DATE_LOG, Customer, 
    COUNT(customer) AS CustomerCount, COUNT(ip_address) as IPCOUNT 
    FROM API_log 
GROUP BY date_logged, Customer 

然後這個想法是將它綁定到一個圖表。 樣本數據:

enter image description here

預期輸出;

enter image description here

電流輸出:

enter image description here

與此欣賞的幫助。

編輯:

我按日期組,因爲我想看到的總的每一天過去7天。換句話說,每天給我每個客戶的總數。

+0

你將需要添加一些預期的樣本數據,並基於該顯示輸出 – TheGameiswar

+0

你按日期組時,你說你每個IP地址需要什麼? –

+0

你顯示了一些不同的東西。隨着你的查詢,你不能得到你在最後一張照片上向我們展示的內容。如果'date_log'列包含時間部分,那麼確定你會得到這個,在這種情況下,你應該通過'cast(date_lod as date)'來分組,而不是 –

回答

1

我認爲你的date_logged列是日期時間,所以它是有道理的,你分組時得到不同的日期。試試這個

SELECT CAST(date_logged AS DATE) AS DATE_LOG, Customer, 
    COUNT(customer) AS CustomerCount, COUNT(ip_address) as IPCOUNT 
    FROM API_log 
GROUP BY CAST(date_logged AS DATE), Customer 
+0

你真棒。謝謝。真的很欣賞它。 – vbNewbie

+0

抱歉還有一件事,爲了確保只有最後7天,我假設我可以在當前日期和getdate()之間date_logged()-7或WHERE date_logged> getdate() - 7? – vbNewbie

+0

@vbnewbie既然我們假設你的date_logged是一個日期時間字段,你必須具體說明7天。例如,簡單的數學可以說,這是一天。 1/1/2016 7PM - 1/2/2016 7PM?或者只是2016年1月1日12AM和1/2/2016 12AM之間的任何東西? – SQLChao

相關問題