2015-10-18 55 views
2

最新配合,我已經開始學習SQL數據庫的東西,我很困惑這裏。我必須創建一個每月有多少事件的表格。 我已經知道如何創建表,但剩下的?創建每月事件數量的新表格

SELECT 
    EXTRACT(month FROM dateofcall) AS x, 
    incidentnumber, 
    dateofcall 
FROM 
    incidents 
GROUP BY 
    incidentnumber, 
    x 
ORDER BY 
    x ASC; 

但它沒有給我每個月的事件數量的結果。 =(

+0

你在你的代碼中提到DBMS服務器的三種不同的品牌。你在使用哪一個?他們並不完全相同。另外,您可能會發現閱讀GROUP BY用法的一些示例很有幫助。 –

+0

對不起,我在這裏新:)發生了一些錯誤 我在Dbeaver上工作 –

+0

Dbeaver是一個數據庫客戶端工具,可以與MySQL,Microsoft SQL Server,PostgreSQL,IBM db2,oracle等一起工作。但是SQL語言的細節取決於你使用的服務器,而不是dbeaver。 –

回答

1

看起來你是由GROUP BY子句中的太多項目分組,並且你沒有計算你的事件,只是顯示他們的細節

試試這個:

SELECT EXTRACT(month FROM dateofcall) AS x, 
     COUNT(*) AS incidents  
FROM 
    incidents 
GROUP BY 
    EXTRACT(month FROM dateofcall) 
ORDER BY 
    EXTRACT(month FROM dateofcall) 
+0

**感謝隊友!正是我期待的!歡呼聲 當我獲得更多聲望時,您將投票給您:)** –

+0

您可以通過EXTRACT(month FROM dateofcall)的順序使用'by 1 order by 1'而不是'group by EXTRACT(month FROM dateofcall) –

1
SELECT 
    EXTRACT(month FROM dateofcall) AS theMonth, 
    COUNT(*) AS theNumberOfIncidents 
FROM 
    incidents 
GROUP BY 
    EXTRACT(month FROM dateofcall) 
ORDER BY 
    theMonth 

您的原始查詢是不算什麼。你也受到incidentNumber我以爲是你的主鍵,這是荒謬的操作分組。

由於在SQL怪癖語言你不能在GROUP BY語句中使用列別名,這就是爲什麼你需要複製EXTRACT(month FROM dateofcall)代碼

+0

**真棒!我現在只是在嘗試同樣的事情,並且你幫助我與團隊合作:)!非常感謝@戴 我想投你的答案,但我在這裏新,它似乎我需要更多的聲譽** –